jquery ajax 跨域处理

时间:2024-03-29 11:07:02

今天使用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 + ")");

这样,就可以正常获取并显示数据了。