跨域請(qǐng)求的問題怎么解決?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

解決跨域請(qǐng)求的方法有:jsonp是利用頁面中的腳本標(biāo)記的加載來實(shí)現(xiàn)跨域請(qǐng)求的;cors是通過響應(yīng)頭中指定的源點(diǎn)與當(dāng)前源點(diǎn)相匹配來實(shí)現(xiàn)跨域請(qǐng)求
我們經(jīng)常說的跨域請(qǐng)求是從一個(gè)域中的其他域名中請(qǐng)求資源。這里的其他域名不僅僅指域名,還包含很多內(nèi)容比如協(xié)議,域名,端口的不相同,則這兩個(gè)域也會(huì)將被視為不同,所以接下來在文章中將和大家詳細(xì)介紹如何解決跨域請(qǐng)求的問題。
同源策略
在運(yùn)行中我們有時(shí)會(huì)出錯(cuò)是因?yàn)槲覀冞`反了同源策略,這是一種瀏覽器所實(shí)施的安全措施,用于限制具有不同來源的文檔之間的交互。頁面的來源由其協(xié)議,主機(jī)和端口號(hào)定義。具有相同來源的資源可以相互完全訪問。但是如果具有不相同的源將會(huì)拒絕訪問。
http://www.a.com/a.js http://www.b.com/a.js 這兩個(gè)之間就不可以互相訪問,因?yàn)橛蛎牟幌嗤?/pre>域名組成
如果上面兩個(gè)域名想互相訪問就需要跨域請(qǐng)求,一般情況下同源政策規(guī)定:允許跨源 寫入,而不允許跨源 讀取這意味著同源政策不會(huì)阻止將數(shù)據(jù)寫入,只會(huì)禁止他們從域中讀取數(shù)據(jù), 或者對(duì)從其域收到的響應(yīng)做任何事情。
跨域請(qǐng)求的方法
JSONP
JSONP 稱為帶有填充的JavaScript對(duì)象表示,是一種通過利用HTML頁面中的腳本標(biāo)記可以來加載來自不同來源的代碼來執(zhí)實(shí)現(xiàn)跨域請(qǐng)求的方法。JSONP依賴于<script>標(biāo)簽可以來自不同來源的事實(shí)。當(dāng)瀏覽器解析<script>標(biāo)記時(shí),它將獲取腳本內(nèi)容,并在當(dāng)前頁面的上下文中執(zhí)行它。通常,服務(wù)將返回HTML或以XML或JSON等數(shù)據(jù)格式表示的某些數(shù)據(jù)。但是,當(dāng)向啟用JSONP的服務(wù)器發(fā)出請(qǐng)求時(shí),它會(huì)返回一個(gè)腳本塊,該腳本塊在執(zhí)行時(shí)會(huì)調(diào)用頁面指定的回調(diào)函數(shù),并將實(shí)際數(shù)據(jù)作為參數(shù)提供
注意:它沒有相同的源點(diǎn)限制,即使在舊瀏覽器中也具有良好的兼容性但是JSONP只能用于執(zhí)行跨域GET請(qǐng)求,服務(wù)器必須顯式支持JSONP請(qǐng)求。
CORS方法
為服務(wù)器提供了一種機(jī)制,告訴瀏覽器可以請(qǐng)求域A讀取來自域B的數(shù)據(jù)。通過在響應(yīng)中包含一個(gè)新的 Access-Control-Allow-OriginHTTP頭來完成的,當(dāng)瀏覽器收到來自跨源源的響應(yīng)時(shí),它將檢查CORS頭。如果響應(yīng)頭中指定的源點(diǎn)與當(dāng)前源點(diǎn)相匹配,則允許對(duì)響應(yīng)進(jìn)行讀訪問,否則就會(huì)報(bào)錯(cuò)。
與jsonp相比,CORS具有以下優(yōu)勢(shì):
它不僅支持GET請(qǐng)求,還支持POST等其他請(qǐng)求
它可以使用XMLHttpRequest發(fā)送和接收數(shù)據(jù),并具有更好的錯(cuò)誤處理機(jī)制
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)建站的支持。
名稱欄目:跨域請(qǐng)求的問題怎么解決-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://www.chinadenli.net/article20/djdsjo.html成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、動(dòng)態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、App設(shè)計(jì)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容