受制于同源策略,一個域去請求另一個域的資源時,就會出現跨域的現象,而在
我們開發中,經常需要跨域去請求資源(例如:本地localhost,去請求測試環境
的資源),所以我們也就需要一些方法去解決這個跨域的問題
復制代碼
一、使用jsonp 解決跨域
缺點:不安全,容易造成xss攻擊;只能是GET請求
原理:
1.<script>標簽的src屬性不受同源策略的限制
2.跨域請求的接口返回的是一個函數調用,也就是調用我們應用中定義好的一個方法
復制代碼
接口返回的數據格式
二、通過cors解決跨域
原理:在服務器端設置允許跨域的請求頭,從而實現跨域
服務器設置后前端通過正常的ajax 請求即可
復制代碼
三、通過postMessage()實現不同源的兩個頁面間的通信
原理:1.postMessage()能在兩個頁面間通信
2.利用iframe
復制代碼
四、通過window.name 實現跨域
原理:
1.name在不同頁面加載后仍舊存在,配合iframe
復制代碼