4

我正在向我的 RESTful API(使用 Rails 制作)中的资源提供文件上传。当您GET /resource/123/attachment将具有相应 MIME 类型的文件发送到浏览器时。(可以是任何东西 .. 图像、PDF、文本文件等等)

如果有任何兴趣,可以这样做:

send_file(contract.attachment.path, :filename => contract.attachment.original_filename)    

但由于上传的文件是基于用户的和机密的,因此您需要Authorization使用令牌设置 HTTP 标头。

所以我考虑使用jQuery.get这样我就可以设置 HTTP 标头。但是我该如何处理来自服务器的响应呢?它应该表现得像您单击了一个普通链接(仅在请求之前设置了 HTTP 标头)

4

1 回答 1

0

如果您可以控制服务器输出并且图像不是太大,您可以使用 base64 图像并执行以下操作:

$.ajax({ 
  url : '/resource/123/attachment', 
  processData : false,
}).done(function(data){
  $("#YOUR_IMG_ID").attr("src", "data:image/png;base64,"+data);
});

另一种选择是您可以编写备用身份验证,以允许您在查询字符串中放入一些内容,例如 <img src="/resource/123/attachment?auth=xxxxx">。例如,您可以查看 oAuth 或其他东西来签署请求。

于 2014-05-20T08:33:31.090 回答