jsfiddleから自分のサーバーに保存されているjsonファイルにjson要求を行う方法を頭に入れようとしています。flickrの例でjsonpを理解しようとしています
HTML:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="images">
</div>
</body>
</html>
はjqueryの:
$.getJSON("http://www.shopsheep.com/groupon/json/test.json?jsoncallback=?", function(data) {
$.each(data.items, function(i, item) {
$("<img/>").attr("src", item.media.m).appendTo("#images");
if (i == 0) {
return false;
}
});
});
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?format=json&jsoncallback=?", function(data) {
$.each(data.items, function(i, item) {
$("<img/>").attr("src", item.media.m).appendTo("#images");
if (i == 0) return false;
});
});
私はフリッカJSONファイルをダウンロードし、test.jsonとしての私のサーバーにアップロードしました。ブラウザに貼り付けると、フリッカーファイルと同じように戻ります。
しかし、私は画像を表示しようとすると、元のフリッカーの例だけが動作していますか?なぜこれが当てはまるのでしょうか?
http://jsfiddle.net/stofke/DJQ5g
[OK]を私はこれを行う方法を発見しました。 getJSON関数は、ランダムな というコールバック関数名をjsoncallback =に追加します。
:あなたはこのようなcallbackfunctionnameを得ることができるよりも、あなたがあなたのjsonfileは、PHPファイルに変換するので、もし、この関数の名前を知っている、もちろん必要がある。このcallbackfunctionであなたのJSONファイルをラップするために、このjQuery160188050875203142_1309437718540&_=1309437718551
のようなもの
<?php echo $_GET["jsoncallback"];?>(
ADD JSON CONTENT HERE
)
このPHPファイルは、GET変数を使用してコールバック関数の名前を取得し、jsonコンテンツをそのファイルにラップします。これはうまく動作します。
まだわかりません。 jsonFlickrFeedはFirefoxとのリンクを開くと確かにそこにありますが、Chromeでは表示されません。 私が追加するコールバック関数は、コールバックとして返されません。 – Stofke
ああ、私はjqueryの呼び出しを参照してください私は動的にjqueryによって提供されるコールバック関数でラップされたjsonを生成する必要があります – Stofke