3

選択したドロップダウン ボックスに応じて、パブリック フィードまたは FlickrApi を呼び出す Flickr 検索エンジンを作成しました。返される JSONP 関数呼び出しの例:

a)jsonFlickrApi({"photos":{"page":1, "pages":201, "perpage":100, "total":"20042", "photo":[{"id":"5101738723"...

b) jsonFlickrFeed({ "title": "Recent Uploads tagged red","link": "http://www.flickr.com/photos/tags/red/","description": "", ....

奇妙なことに、私のローカル インストール ( xampp) では両方とも正常に動作し、イメージが返されますが、上記のドメインでまったく同じコードをホストするとjsonFlickrApi動作しません。私が(Firebugを見て)気付いたのはjsonFlickrApi、応答ヘッダーが言うことですConnection close

Responseまた、Firebugにリクエストを送信してもタブが表示されません。jsonFlickrApi

コードは次のとおりです。

function makeCall(uri)
{
    xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = callback;
    xmlhttp.open("GET", "jsonget.php?url="+uri, true);
    xmlhttp.send();
}

function jsonFlickrApi(response)
{ 
  var data= response.photos.photo ;
  var output = "";
  output += "<img src=http://farm" + data[4].farm + ".static.flickr.com/" + data[1].server + "/" + data[4].id + "_" + data[4].secret + ".jpg>";
  document.getElementById("cell-0").innerHTML = output ;
}

//Public Feed
function jsonFlickrFeed(response)
{
  var data= response.items[0].media.m ;
  alert(data);
  var output = "";
  output += "<img src=" + data+ ">";
  document.getElementById("cell-0").innerHTML = output ;
}

function callback()
{
    //console.log("Ready State: " + xmlhttp.readyState + "\nStatus" + xmlhttp.status);
    if(xmlhttp.readyState==4 && xmlhttp.status==200)
    {
                var jsonResponse = xmlhttp.responseText; 
        jsonResponse = eval(jsonResponse);
    }
}

呼び出しの例:

a)

http://flickr.com/services/rest/?method=flickr.photos.search&api_key=75564008a468bf8a284dc94bbd176dd8&tags=red&content_type=1&is_getty=true&text=red&format=json&timestamp=1339189838017

b)

http://api.flickr.com/services/feeds/photos_public.gne?tags=red&format=json&timestamp=1339190039407

質問:接続が閉じるのはなぜですか? 実際のドメインではなく、localhost で動作するのはなぜですか?

4

1 に答える 1

0

の HTTP 応答ヘッダーを見ると、

http://flickr.com/services/rest/?method=flickr.photos.search&api_key=75564008a468bf8a284dc94bbd176dd8&tags=red&content_type=1&is_getty=true&text=red&format=json×tamp=1339189838017

私は場所で302を取得します

http://www.flickr.com/services/rest/?method=flickr.photos.search&api_key=75564008a468bf8a284dc94bbd176dd8&tags=red&content_type=1&is_getty=true&text=red&format=json×tamp=1339189838017

つまり、flicker が伝えたいのは、「flicker.com の代わりに www.flicker.com を使用してください!」ということです。この URL でコンテンツを取得します。

于 2012-06-11T02:56:46.673 に答える