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