DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> jquery下利用jsonp跨域訪問實現方法
jquery下利用jsonp跨域訪問實現方法
編輯:JQuery特效代碼     
代碼如下:
$.ajax({
async:false,
url: '', // 跨域URL
type: 'GET',
dataType: 'jsonp',
jsonp: 'jsoncallback', //默認callback
data: mydata, //請求數據
timeout: 5000,
beforeSend: function(){ //jsonp 方式此方法不被觸發。原因可能是dataType如果指定為jsonp的話,就已經不是ajax事件了
},
success: function (json) { //客戶端jquery預先定義好的callback函數,成功獲取跨域服務器上的json數據後,會動態執行這個callback函數
if(json.actionErrors.length!=0){
alert(json.actionErrors);
}

},
complete: function(XMLHttpRequest, textStatus){

},
error: function(xhr){
//jsonp 方式此方法不被觸發
//請求出錯處理
alert("請求出錯(請檢查相關度網絡狀況.)");
}
});



代碼如下:
$.getJSON(url+"?callback=?",
function(json){

});

這種方式其實是上例$.ajax({..}) 的一種高級封裝。

在服務端通過獲得callback參數(如:jsonp*****)得到jQuery端隨後要回調的
然後返回類似:"jsonp*****("+要返回的json數組+")";
jquery就會通過回調方法動態加載調用這個:jsonp*****(json數組);
這樣就達到了跨域數據交換的目的.

JSONP是一種腳本注入(Script Injection)行為,所以也有一定的安全隱患。

注意:jquey是不支持post方式跨域的。
參考:http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved