今天使用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 + ")");
这样,就可以正常获取并显示数据了。