前后分离后
export const download = function(options){
let xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
xhr.open("GET", options.url, true);
xhr.setRequestHeader('Authorization', authorization());//前后分离的权限头
xhr.send(obj2url(options.get));
xhr.responseType = "blob";//这里是关键,它指明返回的数据的类型是二进制
xhr.onreadystatechange = function(e) {
if (this.readyState == 4 && this.status == 200) {
console.log('change download');
var response = xhr.response;
let url = URL.createObjectURL(response);
img.src=url;//如果这里是图片,可以显示出图片。
window.open(url);//想通过打开窗口来下载excel文件。却不可以。
}
}
};
想通过download({url:"http://xxx.ssss:88/sss.xls"});来下载服务器的excel文件。
第一楼评论的很好啊
直接用 a标签 然后模拟点击,直接系统的下载就行了,何必还要自己去ajax请求。。而且还跨域了
祖传前端下载js,供你参考