如何让浏览器提示打开或保存ajax响应

时间:2014-01-23 18:17:47

标签: javascript jquery ajax asp.net-mvc

我在电子邮件中有一个链接,如下所示:

 ...DownloadReport?id=1

首先重定向到用户登录的登录页面。登录成功后,我运行此JavaScript以返回实际报告:

function getReport() {
        $.ajax({ url: "/PropertySearch/Order/GetReport" });
}

对此的回应包括报告(它是一个tif)。但是,浏览器不会弹出“您要打开还是保存此文档?”

如何让浏览器识别响应是文档,从而提示打开或保存?

1 个答案:

答案 0 :(得分:1)

您不一定需要Ajax。如果您在服务器端代码中将content-disposition设置为attachment,那么只需一个链接即可。这样父页面就会保持打开状态,如果这是你的主要关注点(为什么你会不必要地选择Ajax呢?)。此外,没有办法很好地同步处理这个问题。 PDF不是字符数据。这是二进制数据。你不能做像$(element).load()这样的东西。你想对此使用全新的请求。因为<a href="pdfservlet/filename.pdf">pdf</a>非常合适。