您需要在JavaScript代码中添加一个事件监听器来处理XHR对象的onload事件,以便在服务器响应成功时进行处理,并使用responseType属性将响应类型设置为"blob",以便正确处理文件下载。 以下是更新后的JavaScript代码: function myFunction() {
url_new = '/test'
alert(url_new)
const xhr = new XMLHttpRequest();
xhr.open("GET", url_new);
xhr.responseType = 'blob'; // 设置响应类型为二进制数据
xhr.onload = function() {
if (xhr.status === 200) {
// 创建一个URL对象以从响应内容中创建blob URL
const blob = new Blob([xhr.response], {type: 'application/json'});
const url = window.URL.createObjectURL(blob);
// 创建一个a标签并模拟点击以触发文件下载
const link = document.createElement('a');
link.href = url;
link.download = 'data.json';
document.body.appendChild(link);
link.click();
// 清理创建的URL对象
window.URL.revokeObjectURL(url);
} else {
alert('无法下载文件。');
}
};
xhr.send();
}
请注意,此示例仅适用于处理JSON文件类型,您可能需要根据实际情况进行调整和修改。
|