我试图下载带有ajax请求的pdf,但该请求的响应忽略了我的" Content-Type:application / pdf"报头中。
ajax请求
return Superagent.post(url, data).use(this._addDefaults.bind(this));
symfony回复
return new BinaryFileResponse($target);
解决方法
在新标签页中打开,并为该文件添加一个直接网址。
答案 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
。这样,当内容返回时,浏览器将尝试打开或将其保存为文件,而不是将其作为响应文本读取。