js跨域请求下载excel文件。
前后分离后
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文件。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
第一楼评论的很好啊
直接用 a标签 然后模拟点击,直接系统的下载就行了,何必还要自己去ajax请求。。而且还跨域了
祖传前端下载js,供你参考
先弄清楚俩问题,地址是否暴露给外网请求:
(1)如果暴露给外网
(2)如果只对内网暴露