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