解決ajax跨域問題

來源:互聯網
上載者:User

標籤:for   src   處理   eve   span   ajax跨域   hid   status   安全性   

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

方式1:使用Jquery ajax方式。

 1 $.ajax({ 2     url:‘http://www.mysite.com/demo.do‘,  // 跨域URL 3     type:‘get‘, 4     async:false, 5     dataType:‘jsonp‘, 6     jsonp: ‘jsoncallback‘, //預設callback 7     data: mydata,  8     time:5000, 9     beforeSend:function(){10      //jsonp 方式此方法不被觸發。原因可能是dataType如果指定為jsonp的話,就已經不是ajax事件了11     },12     success:function(data){13         //用戶端jquery預先定義好的callback函數,成功擷取跨網域服務器上的json資料後,會動態執行這個callback函數 14        if(json.actionErrors.length!=0){ 15             alert(json.actionErrors); 16         } 17         genDynamicContent(qsData,type,json); 18     },19     complete: function(XMLHttpRequest, textStatus){ 20           $.unblockUI({ fadeOut: 10 }); 21     }, 22     error: function(xhr){ 23           //jsonp 方式此方法不被觸發24           //請求出錯處理 25           alert("請求出錯(請檢查相關度網路狀況.)"); 26      } 27     28 });
View Code

方式2:使用JQuery getJSO方式

1 1   $.getJSON("請求的路徑=?參數", 2 2         function(json){ //返回的結果3 3           if(json.屬性名稱==值){ 4 4             // 執行代碼 5 5         } 6 6  });
View Code

Jsonp的基本原理就是:動態添加一個一致的。Jsonp是一種指令碼的注入(Script InJection)行為,所以,它會有一定的安全性的問題。

同時需要注意Jsonp是不支援post跨域請求的。

 

 

解決ajax跨域問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.