无法下载带有Ajax响应的PDF(标题被忽略)

时间:2015-05-01 13:56:01

标签: ajax symfony superagent

我试图下载带有ajax请求的pdf,但该请求的响应忽略了我的" Content-Type:application / pdf"报头中。

ajax请求

return Superagent.post(url, data).use(this._addDefaults.bind(this));

symfony回复

return new BinaryFileResponse($target);

解决方法

在新标签页中打开,并为该文件添加一个直接网址。

1 个答案:

答案 0 :(得分:1)

我认为这与我过去遇到的问题类似。问题是浏览器默认情况下不会打开对POST ajax请求的响应。我最终选择了自动表单发布。在HTML中:

<form method="post" action="http://handler1.ashx" target="_blank">
  <input type="hidden" id="data" name="data" value="post_body_stuff"/>
  <button id="pdfsubmit" type="submit" value="Submit">Export to PDF</button>
</form>

您可以使用javascript将要POST的所有数据作为隐藏输入字段的值而不是post_body_stuff。这样,当内容返回时,浏览器将尝试打开或将其保存为文件,而不是将其作为响应文本读取。