今天項目上做了一個下載文件,後臺返回ResponseEntity,裏面的HttpHeaders的Content-Disposition存放了文件名。
header.add("Content-Type", "application/octet-stream");
header.add("Content-Disposition", "attachment; filename*=file.json");
現在前臺想獲取文件blob和文件名。
this.httpClient.post('download', null, {
headers: headers,
observe: 'response',
params: {
fileType: 'JSON',
category: 'MASTER',
masterType: 'SCREEN_JSON',
decisionType: '',
recommendId: '1',
recommendDeviceGroupId: '',
recommendReasonGroupId: '',
decisionDocId: ''
},
responseType: 'blob'
}).subscribe((response: HttpResponse<Blob>) => {
if (response) {
const headers: HttpHeaders = response.headers;
console.log(headers.get('content-disposition'));
}
});
但是headers裏只能看到下面兩個值
只需在後臺加上下面即可
header.add("Access-Control-Expose-Headers", "*");
我猜測可能是HttpClient有安全機制,只有有權限才能讀取全部headers信息