Ajax响应中的Content-Disposition附件

4

我正在建设一个网站,它通过 JavaScript 与可以接受已发布的 JSON 请求的 Web 服务进行通信。我使用 XMLHttpRequest 发布这些请求。在某些情况下,服务返回一个下载响应:

例如:

Content-Disposition: attachment; filename="somefile.txt"
Content-Type: application/force-download
Content-Length: 3

123

如果document.location指向像上面那样提供响应的URL,浏览器将自动提示用户下载文件对话框。
我的问题是:我是否可以通过XMLHttpResponse对象以某种方式实现相同的效果?是否有Iframe技巧或其他方法?不幸的是,XMLHttpRequest对象上没有像HTML表单那样的target成员,因为如果我只能重定向完整的响应(带有标头)到新页面或隐藏iframe,则问题将得到解决,我想。
1个回答

0

我想不是。但你可以尝试将隐藏表单提交到隐藏的iframe中。


这也是我的第一反应,但表单在Content-Type方面相当不灵活,只能是application/x-www-form-urlencoded或multipart/form-data。不幸的是,另一端的Web服务期望的是application/json。如果我可以控制格式并发送原始数据,那么iframe中的表单将起作用。 - Jakob Simon-Gaarde

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接