湖上湖
2023-02-24 15:48:10
我將下載一個(gè)包含響應(yīng)的 xml.gzip 文件:緩存控制:無(wú)緩存、無(wú)存儲(chǔ)、max-age=0、必須重新驗(yàn)證連接:保持活動(dòng)狀態(tài)Content-Disposition:附件;文件名=ERKENNUNGSMODELL_CI.9.221_part_1_of_1.xml內(nèi)容編碼:gzip內(nèi)容長(zhǎng)度:1323內(nèi)容-MD5:fIHw5FJ1KWkBHsZ+jbkuwg==內(nèi)容類(lèi)型:應(yīng)用程序/xml日期:2020 年 9 月 10 日星期四 07:56:46 GMT過(guò)期:0保持活動(dòng):超時(shí)=60Pragma:無(wú)緩存嚴(yán)格傳輸安全:max-age=31536000;包括子域X 內(nèi)容類(lèi)型選項(xiàng):nosniffX-XSS-保護(hù):1;模式=塊我的代碼是:download(url) {let downloadHeaders = new HttpHeaders({ 'content-type': 'application/xml; charset=UTF-8', 'authorization': "Bearer " + localStorage.getItem('token') });downloadHeaders.append('Access-Control-Allow-Origin', '*');this.httpClient.get('/rest/ui/download/product-part/' + url, { headers: downloadHeaders }).subscribe(response => { console.log(response); this.downLoadFile(response, "application/xml"); });} downLoadFile(data: any, type: string) {let blob = new Blob([data], { type: type});let url = window.URL.createObjectURL(blob);let pwa = window.open(url);if (!pwa || pwa.closed || typeof pwa.closed == 'undefined') { alert( 'Please disable your Pop-up blocker and try again.');}}使用新的 HttpHeaders({ 'content-type': 'application/xml; charset=UTF-8', 'authorization': "Bearer " + localStorage.getItem('token') });在 console.log 中,文件顯示正確。但下載不起作用:解析“myUrl”期間的 Http 失敗
1 回答

有只小跳蛙
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
如前所述,您必須添加reponseType: 'blob'到獲取選項(xiàng)中。
這是我在我的一個(gè)應(yīng)用程序中處理它的方式,const data從downloadAttachment. 這可能不是最干凈的方法,但它確實(shí)有效。
async downloadAttachment(id: number, filename: string) {
const data = await this.front.downloadAttachment(id);
const downloadURL = window.URL.createObjectURL(data);
const link = document.createElement('a');
link.target = '_blank';
link.href = downloadURL;
link.download = filename;
link.click();
}
檢查它是否有幫助。如果您有任何問(wèn)題,請(qǐng)?jiān)谶@里提問(wèn)。
添加回答
舉報(bào)
0/150
提交
取消