首页 > 解决方案 > 如何将通过 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 文本时以相同的方式工作?

标签: javascriptajaxxmlfile

解决方案


如果您收到 XML 的 url 而不是 XML 文件的内容,您可以使用如下标题

Content-Type: application/octet-stream
Content-Disposition: attachment; filename="file.xml"

它强制浏览器下载 XML。您无需即时创建链接并以编程方式单击它,只需通过重定向 (location.href) 或在新窗口/选项卡 (window.open) 中打开接收到的 url。如果您想确保留在当前页面但在某些情况下会受到限制,则后者很方便。玩得开心!


推荐阅读