前段跨域問題

【1】 什麼是跨域?是基於瀏覽器安全的同源策略(協議 域名端口一致叫同源策略)
【2】跨域有哪幾種方式
JSONP 通過回調函數來進行跨域獲取最終的值 JSONP的優缺點
JSONP的優點是:它不像XMLHttpRequest對象實現的Ajax請求那樣受到同源策略的限制;它的兼容性更好,在更加古老的瀏覽器中都可以運行,不需要XMLHttpRequest或ActiveX的支持;並且在請求完畢後可以通過調用callback的方式回傳結果。
JSONP的缺點則是不能解決不同域的兩個頁面之間如何進行JavaScript調用的問題。

CORS 通過服務端設置 HEADER 頭來設置允許的域名來進行跨域,現代瀏覽器常用,
IFrame 來進行跨域,通信可以用 postMessage;服務端代理來進行跨域,跨域的服務器不受控制。
修改document.domain的方法只適用於不同子域的框架間的交互。
通過location.hash跨域
【3】跨域的幾種狀態什麼情況下才使用跨域?
URL 說明 是否允許通信
http://www.a.com/a.js
http://www.a.com/b.js 同一域名下 允許

http://www.a.com/lab/a.js
http://www.a.com/script/b.js 同一域名下不同文件夾 允許

http://www.a.com:8000/a.js
http://www.a.com/b.js 同一域名,不同端口 不允許

http://www.a.com/a.js
https://www.a.com/b.js 同一域名,不同協議 不允許

http://www.a.com/a.js
http://70.32.92.74/b.js 域名和域名對應ip 不允許

http://www.a.com/a.js
http://script.a.com/b.js 主域相同,子域不同 不允許(cookie這種情況下也不允許訪問)

http://www.a.com/a.js
http://a.com/b.js 同一域名,不同二級域名(同上) 不允許(cookie這種情況下也不允許訪問)

http://www.cnblogs.com/a.js
http://www.a.com/b.js 不同域名 不允許

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章