0

Json ファイル:

{
"weather": [
    {
        "location": "G",
        "temp": "9"
    },
    {
        "location": "L",
        "temp": "6"
    },
    {
        "location": "W",
        "temp": "10"
    }
]

}

脚本

<script type="text/javascript">
                    // <![CDATA[
                    $(document).ready(function() {
                        var url =  ".../Json.php";
                        $.getJSON(url + "?callback=?", null, function(weather) {
                            for(i in weather) {
                                location = weather[i].location;
                                temp = weather[i].temp;
                                $("#footer").append(location.text + temp.text+"<hr />");
                            }
                        });
                    });

                    // ]]>
</script>


誰かが私が間違っていた場所を教えてもらえますか? 私が使用したjson URLが別のドメインに属しているためですか?jsonp を使ってみましたが、それでもうまくいきません....
ありがとうございます。
P/S: Jsonp のアイデアのを入手したところ、サーバーを構成できません。禁止されています。

4

2 に答える 2

1

問題は、JSONP を要求して JSON を取得していることです。オブジェクトに対して何かを行うための関数呼び出しがないため、解析され、静かに無視されます。

JSONP 応答には、次のように、オブジェクトの周りに関数呼び出しが含まれている必要があります。

func({
  "weather": [
    {
        "location": "G",
        "temp": "9"
    },
    {
        "location": "L",
        "temp": "6"
    },
    {
        "location": "W",
        "temp": "10"
    }
  ]
});

上記の例のcallback代わりに、querystring パラメーターの値を関数名として使用します。func


結果を取得すると、それは配列ではなく、配列であるプロパティを持つオブジェクトです。プロパティを使用しweatherて配列を取得します。

for(i in weather.weather)
于 2012-10-02T17:36:12.760 に答える
0

これは使えません

var url =  ".../Json.php";

他のドメインのURLを呼び出すことはできません

XMLHttpRequest APIの能力にもかかわらず、その使用は「同一生成元」ポリシーによって制限されます。これが意味するのは、XMLHttpRequestを送信するURLのホスト名は、Webサーバーのホスト名と異なることはできないということです。

于 2012-10-02T17:31:49.360 に答える