Handle file download from ajax post(处理从 ajax post 下载的文件)
问题描述
我有一个 javascript 应用程序,可以将 ajax POST 请求发送到某个 URL.响应可能是 JSON 字符串,也可能是文件(作为附件).我可以在我的 ajax 调用中轻松检测到 Content-Type 和 Content-Disposition,但是一旦我检测到响应包含一个文件,我该如何让客户端下载它?我在这里阅读了许多类似的主题,但没有一个提供我正在寻找的答案.
I have a javascript app that sends ajax POST requests to a certain URL. Response might be a JSON string or it might be a file (as an attachment). I can easily detect Content-Type and Content-Disposition in my ajax call, but once I detect that the response contains a file, how do I offer the client to download it? I've read a number of similar threads here but none of them provide the answer I'm looking for.
请,请,请不要发布建议我不应该为此使用 ajax 或我应该重定向浏览器的答案,因为这些都不是一个选项.使用纯 HTML 表单也不是一种选择.我需要的是向客户端显示一个下载对话框.这可以做到吗?如何做到?
Please, please, please do not post answers suggesting that I shouldn't use ajax for this or that I should redirect the browser, because none of this is an option. Using a plain HTML form is also not an option. What I do need is to show a download dialog to the client. Can this be done and how?
推荐答案
创建表单,使用 POST 方法,提交表单 - 不需要 iframe.当服务器页面响应请求时,为文件的 mime 类型写一个响应头,它会显示一个下载对话框 - 我已经这样做了很多次了.
Create a form, use the POST method, submit the form - there's no need for an iframe. When the server page responds to the request, write a response header for the mime type of the file, and it will present a download dialog - I've done this a number of times.
您想要应用程序/下载的内容类型 - 只需搜索如何为您使用的任何语言提供下载.
You want content-type of application/download - just search for how to provide a download for whatever language you're using.
这篇关于处理从 ajax post 下载的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:处理从 ajax post 下载的文件
基础教程推荐
- 我什么时候应该在导入时使用方括号 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 响应更改 div 大小保持纵横比 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 动态更新多个选择框 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01