axios返回response響應頭headers默認返回全小寫
Access-Control-Expose-Headers
默認情況下,header只有六種 simple response headers (簡單響應首部)可以暴露給外部:
- Cache-Control
- Content-Language
- Content-Type
- Expires
- Last-Modified
- Pragma
這里的暴露給外部,意思是讓客戶端可以訪問得到,既可以在 Network 里看到,也可以在代碼里獲取到他們的值。
上面問題提到的 content-disposition 不在其中,所以即使服務器在協議回包里加了該字段,但因沒“暴露”給外部,客戶端就“看得到,吃不到”。
而響應首部 Access-Control-Expose-Headers 就是控制“暴露”的開關,它列出了哪些首部可以作為響應的一部分暴露給外部。
所以如果想要讓客戶端可以訪問到其他的首部信息,服務器不僅要在heade里加入該首部,還要將它們在 Access-Control-Expose-Headers 里面列出來
解決辦法
后端設置:
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition")
response.setHeader("Content-Disposition", ...)
