今天使用JQuery Ajax 在本地電腦獲取遠端伺服器資料的時候,發現使用$.ajax,$.getJSON,$.get這些都沒有反應,後來再統一個網站下測試了一下,程式碼寫得沒有問題。後來想了想好想,有個跨域的說法。
百度以後,問題解決,這裡自己總結收藏一下:
相同域名:
$.getJSON("GetDeviceRealData.aspx?deviceid=" + deviceid + "&rtype=json", function(data) {
$.each(data.list, function(i, o) {
html.push(o.name + ":" + o.value + o.unit + "<br/>");
});
$("#divdata").html(html.join(''));
});
這樣可以正常獲取資料並顯示l
不同域名:
var pilot = {
getdata: function(deviceid) {
var html = [];
$.getJSON("http://www.aaa.com/GetDeviceRealData.aspx?deviceid=" + deviceid + "&rtype=json&jsoncallback=?", function(data) {
$.each(data.list, function(i, o) {
html.push(o.name + ":" + o.value + o.unit + "<br/>");
});
$("#divdata").html(html.join(''));
});
}
}
重點說明:
1.在url後面加上 jsoncallback=? (或者callback=?)
2.在http://www.aaa.com/GetDeviceRealData.aspx返回json的時候 加上 :
string jsonb = Request["jsoncallback"];
....
Response.Write(jsonb + "(" + responseText + ")");
這樣,就可以正常獲取並顯示資料了。