解決思路是針對產生跨域安全問題的三點原因進行一一攻破即可。

首先第一點 “瀏覽器的限制”
那么只要禁止掉瀏覽器的限制就OK。啟動瀏覽器時通過給其指定參數可以禁止掉跨域限制的功能,但是其實這樣做意義不大,因為不可能給每個使用你系統的用戶電腦上的瀏覽器去加這個參數吧。。。。
其次第二點 “請求是XHR類型”
那么只要發送的請求不是XHR的就行。于是出現了大名鼎鼎的 **JSONP**。
最后第三點 “跨域”
JSONP雖然能夠解決問題,但是它存在很多弊端,導致現在JSONP使用的越來越少了。所以我們決絕跨域安全問題的重點就落在了第三點上-即解決 “跨域”。
解決跨域有兩種思路:
1. 在后端解決(支持跨域):后端在響應頭里面加入一些允許瀏覽器跨域的信息,用來告訴瀏覽器:“我允許XXX客戶端訪問我,你就不要做跨域安全的檢查了”。
2. 在前端解決(隱藏跨域):通過代理來解決。比如之前A訪問C存在跨域,現在可以加一個B服務器,讓A先訪問B,B再去訪問C,A和B是同域名的。
總結:
1. jsonp
2. nginx 反向代理(nginx 服務內部配置 Access-Control-Allow-Origin *)
3. CORS 前后端協作設置請求頭部,Access-Control-Allow-Origin 等頭部信息
4. iframe 嵌套通訊,postmessage