Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight respo
生活随笔
收集整理的這篇文章主要介紹了
Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight respo
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在axios請求中出現:
問題描述:
如下圖展示,在 請求接口的時候,第一個接口返回200,但是第二個接口卻返回0。
上圖是請求日本的域名,然而請求國內的域名是沒有問題的。
下面對比一下日本預檢請求截圖
代碼里設置了header 的請求截圖 (會報CORS錯誤)
設置header信息的代碼注釋掉重新請求
對比之后不難發現,多了一個Authorization
然后看一下nginx里請求頭部的配置
發現是沒有允許Authorization的。
由于接口需要在頭部header傳遞Authorization字段:
vue代碼:
執行發送的時候出現以上錯誤:
意思是預發請求的時候不通過,不再正式發請求
經過反復的測試,發現,header里面包含自定義字段,瀏覽器是會先發一次options請求,如果請求通過,則繼續發送正式的post請求,而如果不通過則返回以上錯誤
那這樣就只能在服務端配置options的請求返回,代碼如下:
加上 “Authorization”response.setHeader("Access-Control-Allow-Headers", "Authorization");上面代碼需要加入允許的頭部Authorization,并且判斷請求的方法是options的時候,返回ok(200)給客戶端,這樣才能繼續發正式的post請求。
修改之后成功發了post請求。
問題已經解決, 普及預檢知識:
預檢
總結
以上是生活随笔為你收集整理的Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight respo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gta5线下怎么买房子
- 下一篇: js实现点击自动下载文件