今天使用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 + ")");
這樣,就可以正常擷取並顯示資料了。