什麼是js跨域,如何解決

js跨域釋義:

     js跨域是指通過js在不同的域之間進行數據傳輸或通信,如:從www.baidu.com 頁面去請求 www.google.com的資源。 域:協議、域名、端口都一致。需要跨域。

原因:

     由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制。

跨域的2中情況:

     1、通常的get類型請求;

     2、put、post、delete之類的(RESTful風格)。

問題解決:

     1、代理:簡單的說就是甩鍋,把進行數據傳輸或通信的事情甩給後端,由後端作爲中轉。這個能解決所以跨域問題。

     2、jsonp:利用<script>、<img>、<iframe>等標籤來實現跨域的一種非正式傳輸協議,只支持get方式。JQuery對於Ajax的跨域請求有兩類解決方案,分別是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式,也只支持get方式

 

      jQuery.ajax({
            type: "get",
            url: "http://10.10.163.174:1120/cases/kn/case/getCaseInfo",
            dataType: "jsonp",
            jsonp: "callback",//傳遞給請求處理程序或頁面的,用以獲得jsonp回調函數名的參數名(一般默認爲:callback)
            jsonpCallback:"flightHandler",//自定義的jsonp回調函數名稱,默認爲jQuery自動生成的隨機函數名,也可以寫"?",jQuery會自動爲你處理數據
            success: function(json){
                alert('success' + JSON.stringify(json));
            }
        });

 

更詳細瞭解:https://segmentfault.com/a/1190000007232373

     3、CORS(Cross-Origin Resource Sharing):W3C中一項新的特性。

CORS:http://blog.csdn.net/besto229/article/details/78637315

 

 

 

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