我正在向我的 RESTful API(使用 Rails 制作)中的资源提供文件上传。当您 GET/resource/123/attachment
时,具有相应 MIME 类型的文件将发送到浏览器。 (可以是任何东西......图像、PDF、文本文件等)
如果有任何兴趣,可以这样做:
send_file(contract.attachment.path, :filename => contract.attachment.original_filename)
但由于上传的文件是基于用户的且保密,因此您需要使用 token 设置Authorization
HTTP header 。
所以我考虑使用 jQuery.get
以便我可以设置 HTTP header 。但是我如何处理来自服务器的响应呢?它的行为应该像您单击普通链接一样(只是在请求之前设置了 HTTP header )
最佳答案
如果您可以控制服务器输出并且图像不太大,您可以对图像进行 Base64 并执行如下操作:
$.ajax({
url : '/resource/123/attachment',
processData : false,
}).done(function(data){
$("#YOUR_IMG_ID").attr("src", "data:image/png;base64,"+data);
});
另一个选项是您可以编写备用身份验证,以允许您在查询字符串中添加一些内容,例如 。例如,您可以查看 oAuth 或其他东西来签署请求。
关于jquery - 下载带有 HTTP "Authorization" header 集的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15299196/