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 に答える