一区二区三区中文国产亚洲_另类视频区第一页_日韩精品免费视频_女人免费视频_国产综合精品久久亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 如何解決跨越問題

如何解決跨越問題

來源:千鋒教育
發(fā)布人:wjy
時(shí)間: 2022-09-07 16:55:47 1662540947

(1)CORS

下面是MDN對于CORS的定義:

跨域資源共享(CORS) 是一種機(jī)制,它使用額外的 HTTP 頭來告訴瀏覽器  讓運(yùn)行在一個(gè) origin (domain)上的Web應(yīng)用被準(zhǔn)許訪問來自不同源服務(wù)器上的指定的資源。當(dāng)一個(gè)資源從與該資源本身所在的服務(wù)器不同的域、協(xié)議或端口請求一個(gè)資源時(shí),資源會發(fā)起一個(gè)跨域HTTP 請求。

CORS需要瀏覽器和服務(wù)器同時(shí)支持,整個(gè)CORS過程都是瀏覽器完成的,無需用戶參與。因此實(shí)現(xiàn)CORS的關(guān)鍵就是服務(wù)器,只要服務(wù)器實(shí)現(xiàn)了CORS請求,就可以跨源通信了。

瀏覽器將CORS分為簡單請求非簡單請求:

簡單請求不會觸發(fā)CORS預(yù)檢請求。若該請求滿足以下兩個(gè)條件,就可以看作是簡單請求:

1)請求方法是以下三種方法之一:HEADGETPOST2)HTTP的頭信息不超出以下幾種字段:AcceptAccept-LanguageContent-LanguageLast-Event-IDContent-Type:只限于三個(gè)值application/x-www-form-urlencoded、multipart/form-data、text/plain若不滿足以上條件,就屬于非簡單請求了。

(1)簡單請求過程:

對于簡單請求,瀏覽器會直接發(fā)出CORS請求,它會在請求的頭信息中增加一個(gè)Orign字段,該字段用來說明本次請求來自哪個(gè)源(協(xié)議+端口+域名),服務(wù)器會根據(jù)這個(gè)值來決定是否同意這次請求。如果Orign指定的域名在許可范圍之內(nèi),服務(wù)器返回的響應(yīng)就會多出以下信息頭:

如果Orign指定的域名不在許可范圍之內(nèi),服務(wù)器會返回一個(gè)正常的HTTP回應(yīng),瀏覽器發(fā)現(xiàn)沒有上面的Access-Control-Allow-Origin頭部信息,就知道出錯(cuò)了。這個(gè)錯(cuò)誤無法通過狀態(tài)碼識別,因?yàn)榉祷氐臓顟B(tài)碼可能是200。

在簡單請求中,在服務(wù)器內(nèi),至少需要設(shè)置字段:Access-Control-Allow-Origin

(2)非簡單請求過程

非簡單請求是對服務(wù)器有特殊要求的請求,比如請求方法為DELETE或者PUT等。非簡單請求的CORS請求會在正式通信之前進(jìn)行一次HTTP查詢請求,稱為預(yù)檢請求。

瀏覽器會詢問服務(wù)器,當(dāng)前所在的網(wǎng)頁是否在服務(wù)器允許訪問的范圍內(nèi),以及可以使用哪些HTTP請求方式和頭信息字段,只有得到肯定的回復(fù),才會進(jìn)行正式的HTTP請求,否則就會報(bào)錯(cuò)。

預(yù)檢請求使用的請求方法是OPTIONS,表示這個(gè)請求是來詢問的。他的頭信息中的關(guān)鍵字段是Orign,表示請求來自哪個(gè)源。除此之外,頭信息中還包括兩個(gè)字段:Access-Control-Request-Method:該字段是必須的,用來列出瀏覽器的CORS請求會用到哪些HTTP方法。

Access-Control-Request-Headers: 該字段是一個(gè)逗號分隔的字符串,指定瀏覽器CORS請求會額外發(fā)送的頭信息字段。服務(wù)器在收到瀏覽器的預(yù)檢請求之后,會根據(jù)頭信息的三個(gè)字段來進(jìn)行判斷,如果返回的頭信息在中有Access-Control-Allow-Origin這個(gè)字段就是允許跨域請求,如果沒有,就是不同意這個(gè)預(yù)檢請求,就會報(bào)錯(cuò)。

服務(wù)器回應(yīng)的CORS的字段如下:

只要服務(wù)器通過了預(yù)檢請求,在以后每次的CORS請求都會自帶一個(gè)Origin頭信息字段。服務(wù)器的回應(yīng),也都會有一個(gè)Access-Control-Allow-Origin頭信息字段。

在非簡單請求中,至少需要設(shè)置以下字段:

減少OPTIONS請求次數(shù):

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
軟件定制開發(fā)中的敏捷開發(fā)是什么?

軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個(gè)高度關(guān)注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個(gè)全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動(dòng)備份有什么區(qū)別?

1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時(shí)間點(diǎn)后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動(dòng)備份的主要目標(biāo)...詳情>>

2023-10-14 12:48:59
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢和特點(diǎn)。包括其...詳情>>

2023-10-14 12:34:11
ORM解決的主要問題是什么?

ORM(對象關(guān)系映射)解決的主要問題是將關(guān)系數(shù)據(jù)庫與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)以表格的形式存儲,而在面向?qū)ο?..詳情>>

2023-10-14 12:26:19