踩坑-IE瀏覽器中vue用axios跨域請求,列表中不存在請求標頭

最近發現公司做的一個項目,一些供應商客戶在瀏覽器上打不開,詢問才知道用的是“天殺的IE瀏覽器”,這都2020年了居然還有人在用IE[默默的在心裏暗罵]。我們建議客戶安裝谷歌,但是客戶不接受我們的建議。

好吧,那隻能找找問題在哪裏了。

IE、360極速瀏覽器的兼容模式出現的問題

前端使用的是vue,http請求使用axios

後臺的跨域處理


在MDN web docs上查到了一些蛛絲馬跡。

Access-Control-Allow-Headers設置的通配符*在IE瀏覽器不支持

經多方查找

http中標準的head,認證名字叫做Authorization,A要大寫,但在vue用axios跨域請求時,傳的head名稱爲authorization,是小寫,所以如果是使用IE瀏覽器,即使是設置Access-Control-Allow-Headers爲*,也無法識別。

解決方法

後臺服務器權設置Access-Control-Allow-Headers爲'authorization,Authorization,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type',強制包含一個authorization頭即可。

response.setHeader("Access-Control-Allow-Headers", "authorization,Authorization,DNT,X-CustomHeader," +
				"Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type");

好吧,使用IE瀏覽器真是個大坑

vue axios 跨域請求在ie瀏覽器 報錯 Access-Control-Allow-Headers 列表中不存在請求標頭 authorization

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章