1.什么是同源策略
同domain即域名(或ip),同端口,同協議視為同一個域,一個域內的腳本僅僅具有本域內的權限,可以理解為本域腳本只能讀寫本域內的資源,而無法訪問其它域的資源。這種安全限制稱為同源策略。
2. 什么是跨域?跨域有幾種實現形式
跨域是指從一個域名的網頁去請求另一個域名的資源。比如從http://www.baidu.com/ 頁面去請求 http://www.google.com 的資源。跨域的嚴格一點的定義是:只要一個源向另一個 協議,域名,端口有任何一個的不同的源請求資源,就被當作是跨域。
跨域實現形式:
- JSONP
- CORS:跨域資源共享(Cross-Origin Resource Sharing)
- 降域
- postMessage()
3. JSONP 的原理是什么
JSONP基本思想是,網頁通過添加一個<script>元素,向服務器請求JSON數據,這種做法不受同源政策限制;服務器收到請求后,將數據放在一個指定名字的回調函數里傳回來,之后有例子。
4. CORS是什么
CORS的全稱是Cross-Origin Resources Sharing,它允許瀏覽器向跨源服務器,發出請求,從而克服了AJAX只能同源使用的限制。
原理
<li>CORS需要瀏覽器和服務器同時支持。目前,所有瀏覽器都支持該功能,IE瀏覽器不能低于IE10;
<li>整個CORS通信過程,都是瀏覽器自動完成,不需要用戶參與。對于開發者來說,CORS通信與同源的AJAX通信沒有差別,代碼完全一樣。瀏覽器一旦發現AJAX請求跨源,就會自動添加一些附加的頭信息,有時還會多出一次附加的請求,但用戶不會有感覺。
<li>實現CORS通信的關鍵是服務器。只要服務器實現了CORS接口,就可以跨源通信。
5.實現跨域的一些方法
JSONP實現
jsonp.png
CROS實現
CROS.png
降域實現
降域.png
postMessage實現
postMessage.png
代碼
感謝瓜子觀眾:

版權歸饑人谷peter和饑人谷所有,若有轉載,請注明來源