有關ajax跨域問題

JQuery ajax支持get方式的跨域,採用了jsonp來完成。完成跨域請求的有兩種方式實現。一種是使用Jquery ajax最底層的Api實現跨域的請求,而另外一種則是JQuery ajax的高級封裝。jquery

1、使用Jquery ajax方式

$.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("請求出錯(請檢查相關度網絡情況.)"); 
      }
 });

2、使用JQuery getJSO方式

$.getJSON("請求的路徑=?參數", 
         function(json){ //返回的結果
           if(json.屬性名==值){ 
             // 執行代碼 
         } 
  });

Jsonp的基本原理就是:動態的添加一個一致的。Jsonp是一種腳本的注入(Script InJection)行爲,因此,它會有必定的安全性的問題。ajax

同時須要注意Jsonp是不支持post跨域請求的。json

相關文章
相關標籤/搜索