這幾個參考連結講得比較好,感覺沒比較自己再做整理,僅做一個知識索引。看完就能明白同源和跨域是怎麼回事。
同源策略(same-origin policy)
最初,它的含義是指,A網頁設定的 Cookie,B網頁不能開啟,除非這兩個網頁同源。
三個相同
- 協議相同
- 域名相同
- 埠相同
三種行為限制
- Cookie,LocalStorage 和 IndexDB 無法讀取
- DOM 無法獲得
- AJAX 請求不能傳送
參考
www.ruanyifeng.com/blog/2016/0…
CORS 跨域資源共享
CORS 是一個 W3C 標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。
它允許瀏覽器向跨源伺服器,發出 XMLHttpRequest
請求,從而克服了 AJAX 只能同源使用的限制。
參考
www.ruanyifeng.com/blog/2016/0…
JSONP
jsonp 不是一種資料格式,跟 json 是兩回事,而是一種跨域傳輸資料的技巧。
利用 script 標籤的 src 可以跨域的性質,來載入跨域伺服器的檔案,該檔案執行本地的函式,並且帶有伺服器傳入的引數。