JQuery ajax支持get方式的跨域,採用了jsonp來完成。完成跨域請求的有兩種方式實現。一種是使用Jquery ajax最底層的Api實現跨域的請求,而另外一種則是JQuery ajax的高級封裝。jquery
$.ajax({ url:'http://www.mysite.com/demo.do', // 跨域URL type:'get', async:false, dataType:'jsonp', jsonp: 'jsoncallback', //默認callback data: mydata, time:5000, beforeSend:function(){ //jsonp 方式此方法不被觸發。緣由多是dataType若是指定爲jsonp的話,就已經不是ajax事件了 }, success:function(data){ //客戶端jquery預先定義好的callback函數,成功獲取跨域服務器上的json數據後,會動態執行這個callback函數 if(json.actionErrors.length!=0){ alert(json.actionErrors); } genDynamicContent(qsData,type,json); }, complete: function(XMLHttpRequest, textStatus){ $.unblockUI({ fadeOut: 10 }); }, error: function(xhr){ //jsonp 方式此方法不被觸發 //請求出錯處理 alert("請求出錯(請檢查相關度網絡情況.)"); } });
$.getJSON("請求的路徑=?參數", function(json){ //返回的結果 if(json.屬性名==值){ // 執行代碼 } });
Jsonp的基本原理就是:動態的添加一個一致的。Jsonp是一種腳本的注入(Script InJection)行爲,因此,它會有必定的安全性的問題。ajax
同時須要注意Jsonp是不支持post跨域請求的。
json