問題:導(dǎo)出一個文件,從后端設(shè)置的content-disposition中獲取對應(yīng)的fileName,but,本地獲取正常,但是部署線上就無法獲取。
大過年的@讓修改,你敢信?
前端獲取? 重要代碼
?let fileName=decodeURIComponent(res.headers['content-disposition'].split('=')[1]);
?但是res.headers部署后獲取不到content-dispostion,就很無語
接下來是解決思路,基本問題就出在這幾個方面
1.首先檢查響應(yīng)攔截器是否直接返回的res.data,這個時候獲取的是不包含請求頭的,所以攔截器那里需要修改
按照自己封裝得返回得,就是要返回所有
2. 其次檢查netWork得接口得請求頭
?是否返回了對應(yīng)的Content-Disposition,保證后端已經(jīng)設(shè)置且返回
3.是否設(shè)置了請求頭進行暴露了對應(yīng)的Content-Disposition
?十分重要,當時我這邊參考了對應(yīng)文章和后端溝通讓設(shè)置
response.setHeader("Access-Control-Expose-Headers","Content-Disposition");
后端后來設(shè)置后,前端還是怎么也拿不到請求頭中的Content-Disposition,然后就是甩鍋,說前端自己獲取不到,大家半斤八兩的何必呢,只能找原因
直到看到一篇JavaScript 無法獲取響應(yīng) header 的 Content-Disposition 字段_明天也要努力的博客-CSDN博客_response中headers里沒有content-disposition
?里面的一個截圖,看到,才知道后端根本沒有設(shè)置上,反手就想給一巴掌,然后后端查詢原因才知道他們的暴露的頭部不知道咋設(shè)置死了,后期設(shè)置無法添加上(不太懂后端)
總算問題得到了解決,花費2小時,很無語。只知道甩鍋不解決問題的后端
當然也是學(xué)習(xí),補充下原理知識文章來源:http://www.zghlxwxcb.cn/news/detail-658044.html
算了參考上面那個文章,我這只做個記錄文章來源地址http://www.zghlxwxcb.cn/news/detail-658044.html
到了這里,關(guān)于讓后端設(shè)置了Access-Control-Expose-Headers還是獲取不到filename?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!