正常的是:<a name="file" download="filename" href="文件地址">filename</a>
為了方便設(shè)置請求頭悬秉,我們可以換一種思路巢音,因為原生的請求方式XMLHttpRequest或者ajax是很方便的設(shè)置頭部信息的
即:通過ajax獲取文件數(shù)據(jù)---->在動態(tài)設(shè)置a標(biāo)簽下載
代碼如下:
updateFile(file)?{
??????var?xhr?=?new?XMLHttpRequest();
??????xhr.open('GET', '文件地址',?true);
??????xhr.setRequestHeader("X-Authorization",?localStorage.getItem('token'));
??????xhr.responseType?=?'blob';
??????xhr.onload?=?function?(e)?{
????????//如果請求執(zhí)行成功
????????if?(this.status?==?200)?{
????????????var?blob?=?this.response;
????????????var?filename?=?file.alias;
????????????var?a?=?document.createElement('a');
????????????//?blob.type?=?"application/octet-stream";
????????????//創(chuàng)鍵臨時url對象
????????????var?url?=?URL.createObjectURL(blob);
????????????a.href?=?url;
????????????a.download=filename;
????????????a.click();
????????????//釋放之前創(chuàng)建的URL對象
????????????window.URL.revokeObjectURL(url);
????????}
??????};
??????//發(fā)送請求
??????xhr.send();
????}