jQuery.post()如何处理Content-Disposition:attachment?

Nic*_*ick 1 php jquery post document attachment

在这里略显疯狂.我正在使用jQuery.post进行Ajax调用,如下所示:

  $.post('php/print.php',{data:dS},function(res){...  },"text");
Run Code Online (Sandbox Code Playgroud)

我从print.php返回(作为测试):

header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=test.doc");

echo "<html>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
echo "<body>";
echo "Testing-2-3!";
echo "</body>";
echo "</html>";
Run Code Online (Sandbox Code Playgroud)

据Firebug说,数据很好,包括标题.但是如何让浏览器(在本例中为Firefox)提示用户保存附件?

谢谢.

Thi*_*ter 5

这根本不可能.AJAX请求永远不会导致用户提示.

但是,您可以简单地使请求返回例如包含URL的JSON或纯文本,然后用于location.href = ...;重定向到它; 这将导致您正在寻找的提示.

如果请求总是导致文件下载,您也可以考虑使用常规表单而不是使用AJAX; 如果响应触发下载对话框,则前一页仍将保留在浏览器窗口中.