我在电子邮件中有一个链接,如下所示:
...DownloadReport?id=1
首先重定向到用户登录的登录页面。登录成功后,我运行此JavaScript以返回实际报告:
function getReport() {
$.ajax({ url: "/PropertySearch/Order/GetReport" });
}
对此的回应包括报告(它是一个tif)。但是,浏览器不会弹出“您要打开还是保存此文档?”
如何让浏览器识别响应是文档,从而提示打开或保存?
答案 0 :(得分:1)
您不一定需要Ajax。如果您在服务器端代码中将content-disposition
设置为attachment
,那么只需一个链接即可。这样父页面就会保持打开状态,如果这是你的主要关注点(为什么你会不必要地选择Ajax呢?)。此外,没有办法很好地同步处理这个问题。 PDF不是字符数据。这是二进制数据。你不能做像$(element).load()这样的东西。你想对此使用全新的请求。因为<a href="pdfservlet/filename.pdf">pdf</a>
非常合适。