我有一个不寻常的要求。基本上我需要一种方式,当用户点击链接或按钮时,他们会收到PDF。这里最棘手的部分是,除非自定义标题与它发送(否则它认为人退出,并将它们发送到登录界面)的服务器将不处理在所有请求。请求具有自定义标头的文件
目前的标题作品不能改变,所以请不要纠缠于它的方式;它将在未来发生变化,并且是我无法控制的内部应用程序。
的选项我已经探讨:
- 使用的iframe或简单地打开一个新的窗口,带有某种路径,将返回的PDF。这是行不通的,因为我无法为PDF指定所需的标题,并且在到达PDF本身之前将被重定向。
- 使用表单并提交请求不能工作,因为我不能 添加任何自定义标头的形式(只XHR和插件就可以了,据我所知)。
- 使用XHR不能工作,因为,虽然它可以添加页眉和 检索文件,有没有办法将它保存在客户端。
这样看来,我在这一点上唯一的选择主要有:
- 使用某种形式的插件,如Flash或Silverlight的请求文件。
- 早得多力的需求的变化比预期使头不再需要。
有什么我很想念这里?我希望有人能够验证我的发现或者指出我错过的东西,因为据我所知,在这里我没有什么可以做的。
编辑:这似乎是贴切和证实了我的想法:XMLHttpRequest to open PDF in browser
如何在应用程序和脚本之间添加某种隧道?隧道可以查询应用程序并接收文件,然后在将文件刷新到用户之前设置适当的标题,从而实际触发下载。我不知道这对您的系统是否可行,取决于安全性。 –
隧道不是一个坏主意,虽然我不确定我们可以在这里实现。嗯。谢谢,我会研究它。 – Kris
如果您不支持IE <10(不太可能,对吧?),您可以使用XMLHttpRequest Level 2(XHR2)和Blob URL。下面是一个示例:http://stackoverflow.com/q/9620497另请参阅http://stackoverflow.com/q/6165266和http://www.html5rocks.com/en/tutorials/file/xhr2/ –