一、通过html的a标签下载
<a href="url 302到下载地址" download>下载</a>
例如:
var link = document.createElement('a');
link.setAttribute("download", "");
link.href = data.fileUrl;
link.click();
二、通过form表单下载,例如
$('<form method="post" target="_blank" role="form" action="'+data.urlPath+data.fileName+'" hidden="hidden"></form>') .appendTo('body').submit().remove();
三、通过window下载
window.location.href="htpp://www.baidu.com/test.rar";
四、通过get请求拿到文件的流,然后调用方法下载,参考这篇博客
兼容浏览器的写法
1、谷歌浏览器
最好是用一的方法,用二和三的方法的话,是谷歌支持的文件类型的话是会直接打开
2、IE浏览器
目前只找到了支持IE10+下载文件,使用微软独家的msSaveBlob, 这个方法支持ie10及以上。
msSaveBlob的使用地址:https://msdn.microsoft.com/zh-cn/windows/hh779016(v=vs.90)
下面是例子
if(!!window.ActiveXObject || "ActiveXObject" in window){//判断是否为IE
if(window.navigator.msSaveBlob){//IE10+方法
var blobObject = new Blob([data.fileUrl]);
window.navigator.msSaveBlob(blobObject, data.fileName);
}
}