我正在向服务器发出AJAX请求,并以XML文本的形式获得响应,并且我尝试了多种方法将其转换为可下载的文件,但没有任何工作。
我为pdf做过类似的事情,但不同之处在于,对于pdf,内容以斑点形式返回,这是代码:
$.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的网址而不是XML文件的内容,则可以使用类似的标题
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="file.xml"
它将强制浏览器下载XML。您无需动态创建链接并以编程方式单击该链接,只需通过重定向(location.href)打开接收的URL或在新选项卡中打开(window.open)。如果您想确保停留在当前页面上,但在某些情况下会受到限制,则比较方便。玩得开心!