javascript - 如何将通过 AJAX 请求接收的 XML 文本转换为文件
问题描述
我正在向服务器发出AJAX请求并以XML 文本形式获得响应,并且我尝试了多种方法将其转换为可下载的文件,但都没有奏效。
我为pdf做了类似的事情,但不同之处在于,对于pdf,内容作为 blob 返回,这是代码:
$.ajax({
method: "GET",
beforeSend: function(request) {
request.setRequestHeader("Authorization", bearer));
},
url: url,
xhrFields: {
responseType: "blob"
},
success(blob) {
var link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.download = "file.xml";
link.click();
}
});
如何转换此代码,使其在接收 XML 文本时以相同的方式工作?
解决方案
如果您收到 XML 的 url 而不是 XML 文件的内容,您可以使用如下标题
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="file.xml"
它强制浏览器下载 XML。您无需即时创建链接并以编程方式单击它,只需通过重定向 (location.href) 或在新窗口/选项卡 (window.open) 中打开接收到的 url。如果您想确保留在当前页面但在某些情况下会受到限制,则后者很方便。玩得开心!
推荐阅读
- javascript - 关闭响应式菜单“点击”JavaScript
- c++ - 虚拟地整理碎片内存,就好像它在 C++ 中是连续的一样
- jestjs - 如何测试使用 apollo 客户端 Reactive Var 的组件
- django - 本地建设成功 | CodeBuild AWS 的成功与失败 | 构建日志显示应用程序启动并运行 | 状态永远在进行中
- bash - 将查找文件中的信息写入另一个文件
- javascript - Angular - 图像之间的交叉淡入淡出
- java - 当位移 16 位时,为什么输出因类型转换不同而不同
- jquery - 在进行 ajax 调用时更新按钮文本
- loops - java.lang.IndexOutOfBoundsException?
- python - 如何为 POS 打印机格式化 python 文本