【发布时间】:2012-06-09 06:18:26
【问题描述】:
我需要下载一个文件,该文件的“Content-Disposition”标头被服务器设置为“attachment”。我将jQuery.ajax 用于GET 并成功设置隐藏iframe src 到url,这给了我一个文件下载的弹出窗口。它在所有浏览器中都能正常工作。
现在我想在 GET 和下载之前更改自定义请求标头以加密文件。我为此使用了jQuery.ajax 预请求回调函数beforeSend。
我能够获取我可以在 firebug 中观察到的加密文件,但我的 iframe 仍然显示非加密文件供下载。检查后我可以说 iframe 请求新的 GET 。
代码
$.ajax({
url: "/tutorial.text",
beforeSend: function(xhr) { xhr.setRequestHeader("PASSWORD_HEADER", userPwd); },
success: function() { $("#Hidden_iframe").attr("src", this.url); }
});
这在 Internet Explorer 上运行良好。我如何强制 iframe 使用可用资源而不是请求新的 GET。
或者我如何在 iframe 中 setRequestHeader 或者我真的需要 jQuery.Ajax 来完成这项任务,有没有最好的方法可以直接从服务器下载设置为附件文件的 Content-Disposition 标头。
【问题讨论】:
-
你有没有得到这个答案?我正在尝试做类似的事情...通过ajax调用下载文件,但下载需要身份验证并且它是跨域的......
标签: jquery iframe http-headers