使用Fetch請求服務,后端服務沒有生成具體文件,返回的是字節流,用下面的方式在Chrome可以使用,但是無法兼容IE,求助解決方案。(要求不在服務器生成文件;由于項目問題,要求使用fetch。)fetch(url).then(res => res.blob().then(blob => { var a = document.createElement('a'); var url = window.URL.createObjectURL(blob); // 獲取 blob 本地文件連接 (blob 為純二進制對象,不能夠直接保存到磁盤上) var filename = res.headers.get('Content-Disposition'); a.href = url; a.download = filename; a.click(); window.URL.revokeObjectURL(url); })); =======================================================================================找到了IE10+的解決方法,但是不兼容IE9┓(;′_`)┏fetch(url).then(res => res.blob().then(blob => { var filename = res.headers.get('Content-Disposition'); if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, filename); }else { var a = document.createElement('a'); var url = window.URL.createObjectURL(blob); // 獲取 blob 本地文件連接 (blob 為純二進制對象,不能夠直接保存到磁盤上) a.href = url; a.download = filename; a.click(); window.URL.revokeObjectURL(url); } }));
使用Fetch下載文件,IE不兼容,求助?。?!
慕無忌1623718
2019-03-20 17:15:49