jquery ajax 跨域請求

weixin_34402090發表於2012-12-18

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

這樣,就可以正常獲取並顯示資料了。 

相關文章