摘要:一同源策略同源協(xié)議,域名,端口三者都相同視為同源。同源策略主要是出于安全的考慮。不受同源策略限制的跨域資源寫(xiě)入。優(yōu)點(diǎn)所有的瀏覽器都支持是解決該問(wèn)題的終極方案四跨域數(shù)據(jù)存儲(chǔ)訪問(wèn)受限情況存儲(chǔ)在瀏覽器中的數(shù)據(jù),如和,以源進(jìn)行分割。
一、同源策略(Same-Origin Policy) 1.1 同源(Same Origin)
協(xié)議,域名,端口三者都相同視為同源。同源策略主要是出于安全的考慮。一個(gè)源不能訪問(wèn)另一個(gè)源的DOM,客戶端數(shù)據(jù),發(fā)生Ajax請(qǐng)求。
1.2 不受同源策略限制的跨域資源寫(xiě)入。
報(bào)錯(cuò):
2.2 window.postMessage 2.2.1 介紹Html5中引入了一個(gè)新的API: window.postMessage,可以安全的使不同源文檔通信。
分別修改A,B頁(yè)面內(nèi)容
A頁(yè)面:
Index
B頁(yè)面:
Detail Detail
顯示:
2.2.2 優(yōu)點(diǎn)A:安全
B:可以傳輸任何數(shù)據(jù)類型
A:這是html5的API,存在兼容性問(wèn)題。
三、跨域Ajax請(qǐng)求 3.1 受限情況Ajax請(qǐng)求只能想同源的地址發(fā)生請(qǐng)求,否則就報(bào)錯(cuò)。
處理這類情況是可通過(guò)JSONP,CORS方式解決。
3.2 JSONP參考:
CSDN:http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/index.html
JSONP其實(shí)是解決異步跨域請(qǐng)求的問(wèn)題,跟AJAX半毛錢(qián)關(guān)系都沒(méi)有。
3.2.1 原理script標(biāo)簽不受同源策略約束,即src屬性的值可以是非同源地址。把請(qǐng)求的接口地址和參數(shù)通過(guò)URL的方式添加到一個(gè)script標(biāo)簽的src屬性上,接口處理完成后返回個(gè)JS函數(shù)調(diào)用語(yǔ)句字符串。這樣就實(shí)現(xiàn)了異步跨域請(qǐng)求接口。
3.2.2 怎么做A:Client端script標(biāo)簽的src屬性指向服務(wù)的地址
B:服務(wù)端返回JS回調(diào)函數(shù)調(diào)用語(yǔ)句的字符串?;卣{(diào)函數(shù)名一般是客戶端傳過(guò)來(lái)的,或者前后端約定的回調(diào)函數(shù)名。
A:只支持GET請(qǐng)求。
3.2.4 優(yōu)點(diǎn)A:所有的瀏覽器都支持
3.3 CORSCORS是解決該問(wèn)題的終極方案
四、跨域數(shù)據(jù)存儲(chǔ)訪問(wèn) 4.1 受限情況存儲(chǔ)在瀏覽器中的數(shù)據(jù),如localStorage和IndexedDB,以源進(jìn)行分割。每個(gè)源都擁有自己多帶帶的存儲(chǔ)空間,一個(gè)源中的Javascript腳本不能對(duì)屬于其它源的數(shù)據(jù)進(jìn)行讀寫(xiě)操作。
處理這種情況是可通過(guò)window.postMessage方式解決。
postMessage實(shí)現(xiàn)了兩個(gè)不同源的頁(yè)面間通信,可以用來(lái)解決跨域數(shù)據(jù)訪問(wèn)問(wèn)題。
4.3 特殊的CookieCookie關(guān)于源的定義不同,參考C_Cookie。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/83734.html
摘要:關(guān)于,強(qiáng)烈推薦閱讀跨域資源共享詳解阮一峰另外,這里也整理了一個(gè)實(shí)現(xiàn)原理圖簡(jiǎn)化版如何判斷是否是簡(jiǎn)單請(qǐng)求瀏覽器將請(qǐng)求分成兩類簡(jiǎn)單請(qǐng)求和非簡(jiǎn)單請(qǐng)求。 前言 從剛接觸前端開(kāi)發(fā)起,跨域這個(gè)詞就一直以很高的頻率在身邊重復(fù)出現(xiàn),一直到現(xiàn)在,已經(jīng)調(diào)試過(guò)N個(gè)跨域相關(guān)的問(wèn)題了,16年時(shí)也整理過(guò)一篇相關(guān)文章,但是感覺(jué)還是差了點(diǎn)什么,于是現(xiàn)在重新梳理了一下。 個(gè)人見(jiàn)識(shí)有限,如有差錯(cuò),請(qǐng)多多見(jiàn)諒,歡迎提出iss...
摘要:同源策略所謂同源是指協(xié)議,域名,端口均相同。同源策略是瀏覽器的一個(gè)安全功能,不同源的客戶端腳本在沒(méi)有明確授權(quán)的情況下,不能讀寫(xiě)對(duì)方資源。需注意的是由于同源策略的限制,所讀取的為跨域請(qǐng)求接口所在域的,而非當(dāng)前頁(yè)。 一、什么是跨域 1.URL解析 URL (Uniform Resource Locator )統(tǒng)一資源定位符(URL)是用于完整地描述Internet上網(wǎng)頁(yè)和其他資源的地址的...
摘要:學(xué)習(xí)建議在學(xué)習(xí)其中一種跨域方法的時(shí)候,建議邊運(yùn)行項(xiàng)目里的,邊在網(wǎng)上搜索博客文章學(xué)習(xí)這種跨域方法,這樣有助于快速并且深入理解跨域。鑒于網(wǎng)上有很多文章詳細(xì)講述跨域知識(shí),只是少了可以本地運(yùn)行的,所以這里就不再贅述跨域知識(shí)。 前言 因?yàn)閷W(xué)習(xí)跨域需要配置本地服務(wù)器,可能會(huì)比較麻煩,所以自己根據(jù)網(wǎng)上的博客寫(xiě)了大多數(shù)跨域的簡(jiǎn)單demo,可以自己在本地運(yùn)行,而且不用配置服務(wù)器。自己對(duì)于跨域的理解剛開(kāi)始...
摘要:學(xué)習(xí)建議在學(xué)習(xí)其中一種跨域方法的時(shí)候,建議邊運(yùn)行項(xiàng)目里的,邊在網(wǎng)上搜索博客文章學(xué)習(xí)這種跨域方法,這樣有助于快速并且深入理解跨域。鑒于網(wǎng)上有很多文章詳細(xì)講述跨域知識(shí),只是少了可以本地運(yùn)行的,所以這里就不再贅述跨域知識(shí)。 前言 因?yàn)閷W(xué)習(xí)跨域需要配置本地服務(wù)器,可能會(huì)比較麻煩,所以自己根據(jù)網(wǎng)上的博客寫(xiě)了大多數(shù)跨域的簡(jiǎn)單demo,可以自己在本地運(yùn)行,而且不用配置服務(wù)器。自己對(duì)于跨域的理解剛開(kāi)始...
摘要:學(xué)習(xí)建議在學(xué)習(xí)其中一種跨域方法的時(shí)候,建議邊運(yùn)行項(xiàng)目里的,邊在網(wǎng)上搜索博客文章學(xué)習(xí)這種跨域方法,這樣有助于快速并且深入理解跨域。鑒于網(wǎng)上有很多文章詳細(xì)講述跨域知識(shí),只是少了可以本地運(yùn)行的,所以這里就不再贅述跨域知識(shí)。 前言 因?yàn)閷W(xué)習(xí)跨域需要配置本地服務(wù)器,可能會(huì)比較麻煩,所以自己根據(jù)網(wǎng)上的博客寫(xiě)了大多數(shù)跨域的簡(jiǎn)單demo,可以自己在本地運(yùn)行,而且不用配置服務(wù)器。自己對(duì)于跨域的理解剛開(kāi)始...
摘要:實(shí)現(xiàn)跨域的原理通過(guò)方式請(qǐng)求載入并執(zhí)行一個(gè)文件,相當(dāng)于通過(guò)的形式的導(dǎo)入一個(gè)外部的方法語(yǔ)法該函數(shù)是簡(jiǎn)寫(xiě)的函數(shù),等價(jià)于在中,您可以通過(guò)使用形式的回調(diào)函數(shù)來(lái)加載其他網(wǎng)域的數(shù)據(jù),如。將自動(dòng)替換為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。 更多詳情見(jiàn)http://blog.zhangbing.club/Ja... 最近在項(xiàng)目開(kāi)發(fā)的過(guò)程中遇到一些Javascript 跨域請(qǐng)求的問(wèn)題,今天抽空對(duì)其進(jìn)行總結(jié)一下,以...
閱讀 2736·2021-11-18 10:02
閱讀 2777·2021-11-15 11:38
閱讀 3853·2021-11-12 10:36
閱讀 805·2021-11-12 10:34
閱讀 3023·2021-10-21 09:38
閱讀 1627·2021-09-29 09:48
閱讀 1744·2021-09-29 09:34
閱讀 1204·2021-09-22 10:02