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