0

为什么 getJSON 方法只适用于本地文件?如果我想从本地获取 json,它可以工作,但是如果我用 http 设置 url,它就不起作用。为什么?

<!DOCTYPE html>
<html>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    </head>
    <script>
        $.getJSON("http://www.address.com/getTables.php", function (data) {
            $.each(data, function (i, table) {
                $("#tables").append("<p>" + table.id + " " + table.tabname + "</p>");
            });
        });
    </script>

    <body>
        <div id="tables"></div>
    </body>

</html>

返回的 JSON:

[{ "id":"12", "tabname":"cukry" }, { "id":"11", "tabname":"table" }]
4

2 回答 2

3

听起来您可能遇到了同源策略

于 2012-06-26T12:40:45.950 回答
0

正如马特所说,这是因为同源政策。尝试使用 JSONP。您只需要像这样将回调添加到您的请求 URL:

$.getJSON("http://www.address.com/getTables.php?jsoncallback=?", function (data) {
        $.each(data, function (i, table) {
            $("#tables").append("<p>" + table.id + " " + table.tabname + "</p>");
        });
    });

在此处查看有关 JSONP的更多信息

于 2012-06-27T07:11:20.417 回答