


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第React如何解決fetch跨域請(qǐng)求時(shí)session失效問題前言
fetch在reactjs中等同于XMLHttpRequest,它提供了許多與XMLHttpRequest相同的功能,但被設(shè)計(jì)成更具可擴(kuò)展性和高效性。
Fetch的核心在于對(duì)HTTP接口的抽象,包括Request,Response,Headers,Body,以及用于初始化異步請(qǐng)求的globalfetch。得益于JavaScript實(shí)現(xiàn)的這些抽象好的HTTP模塊,其他接口能夠很方便的使用這些功能;除此之外,F(xiàn)etch還利用到了請(qǐng)求的異步特性——它是基于Promise的。
請(qǐng)注意,fetch規(guī)范與jQuery.ajax()主要有兩種方式的不同,牢記:
當(dāng)接收到一個(gè)代表錯(cuò)誤的HTTP狀態(tài)碼時(shí),從fetch()返回的Promise不會(huì)被標(biāo)記為reject,即使該HTTP響應(yīng)的狀態(tài)碼是404或500。相反,它會(huì)將Promise狀態(tài)標(biāo)記為resolve(但是會(huì)將resolve的返回值的ok屬性設(shè)置為false),僅當(dāng)網(wǎng)絡(luò)故障時(shí)或請(qǐng)求被阻止時(shí),才會(huì)標(biāo)記為reject。
默認(rèn)情況下,fetch不會(huì)從服務(wù)端發(fā)送或接收任何cookies,如果站點(diǎn)依賴于用戶session,則會(huì)導(dǎo)致未經(jīng)認(rèn)證的請(qǐng)求(要發(fā)送cookies,必須設(shè)置credentials選項(xiàng)).
發(fā)現(xiàn)問題
在解決fetch跨域請(qǐng)求接口的時(shí)候,一般都是讓后臺(tái)接口在返回頭里添加
//允許所有域名的腳本訪問該資源
header("Access-Control-Allow-Origin:*");
確實(shí)這樣是可以解決跨域請(qǐng)求的問題,但是如果我們要在請(qǐng)求的時(shí)候添加session,那么這樣設(shè)置就會(huì)出現(xiàn)問題了。
fetch添加Cookie驗(yàn)證的方法是設(shè)置credentials:'include'
fetch(url,{
method:'POST',
body:JSON.stringify(params),
mode:'cors',
//請(qǐng)求時(shí)添加Cookie
credentials:'include',
headers:newHeaders({
'Accept':'application/json',
"Content-Type":"application/x-www-form-urlencoded;charset=utf-8",
})
設(shè)置好了之后,信心滿滿的發(fā)起請(qǐng)求。卻發(fā)現(xiàn)網(wǎng)絡(luò)請(qǐng)求報(bào)錯(cuò)了
Awildcard'*'cannotbeusedinthe'Access-Control-Allow-Origin'headerwhenthecredentialsflagistrue.Origin'http://localhost:3000'isthereforenotallowedaccess
解決方法
原因是網(wǎng)絡(luò)請(qǐng)求需要攜帶Cookie時(shí)Access-Control-Allow-Origin是不能設(shè)置為*的,這個(gè)時(shí)候應(yīng)該要給Acces
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工廠防疫網(wǎng)格管理制度
- 發(fā)票進(jìn)出登記管理制度
- 公共廣場(chǎng)應(yīng)急管理制度
- 醫(yī)院感染處理管理制度
- 國(guó)外工人安全管理制度
- 公會(huì)資金收支管理制度
- 工地消防安裝管理制度
- 園林監(jiān)理公司管理制度
- 學(xué)校信息資料管理制度
- 沖壓車間安全管理制度
- 《中華人民共和國(guó)醫(yī)療保障法》解讀與培訓(xùn)
- 2025屆遼寧省葫蘆島市第二次模擬考試二模英語試題(原卷版+解析版)
- 中國(guó)碳化硼陶瓷項(xiàng)目商業(yè)計(jì)劃書
- 2025新疆交投集團(tuán)所屬子公司招56人筆試參考題庫附帶答案詳解
- 2025年生物統(tǒng)計(jì)學(xué)考試題及答案詳解
- 護(hù)士鼻飼考試題及答案
- 建筑智能化試題及答案
- 倉管面試試題及答案
- 廣西南寧市2025屆普通高中畢業(yè)班第二次適應(yīng)性考試(二模)數(shù)學(xué)試題【含答案】
- 2024年四川省考公務(wù)員考試結(jié)構(gòu)化面試綜合崗真題試題試卷答案解析
- 2025-2030中國(guó)氮化鋁基板行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
評(píng)論
0/150
提交評(píng)論