ajax请求下载文件

涛哥 PHP代码

要使用AJAX请求下载文件,可以使用XMLHttpRequest对象的responseType属性设置为"blob"类型,然后在onload事件处理程序中创建一个URL对象,并使用该对象的createObjectURL()方法创建一个临时URL,最后将该URL赋给一个链接元素的href属性,从而实现文件下载

以下是一个示例代码:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'example.pdf', true);
xhr.responseType = 'blob';
xhr.onload = function() {
  if (xhr.status === 200) {
    var blob = new Blob([xhr.response], {type: 'application/pdf'});
    var url = URL.createObjectURL(blob);
    var a = document.createElement('a');
    a.href = url;
    a.download = 'example.pdf';
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    URL.revokeObjectURL(url);
  }
};
xhr.send();

其中,'example.pdf'是要下载的文件名或URL。在这个示例代码中,使用了Blob对象和URL.createObjectURL()方法创建了一个临时URL,然后将该URL赋给一个链接元素的href属性,最后模拟用户点击该链接实现文件下载