2

Flickr の API への ajax リクエストが失敗することがあります。ここで何か間違ったことをしているのか、それとも正しく処理していないだけなのかはわかりませんが、コードは 90% 以上の確率で機能します。動作しない場合、Firefox のコンソールから次のエラー メッセージが表示されます。

TypeError: jQuery19109306644694293944_1362865216185 is not a function

(私は jquery にコールバックを生成させています。そのため、コールバックはそのように命名されています。)

これは時々失敗するコードです:

function getAppropriateSize(photo){
    console.log("In getAppropriateSize");
    /** stuff. query is defined here **/
    $.ajax({
        url: 'http://api.flickr.com/services/rest/?method=flickr.photos.getSizes&format=json&api_key='+flickrKey+'&photo_id='+query.id,
        dataType:'jsonp',
        jsonp:'jsoncallback',
        timeout:3000,
        success: function(sizes){
            console.log("In success - getAppropriateSize");
            /**determine the correct size**/
            flickrURL = sizes.sizes.size[currVal].source;
        },
        error: function(xmlhttprequest,textstatus,msg){
            console.log("In error - getAppropriateSize");
            /* handle error*/
         }
    });
}

これが発生したときに何が返されるかを確認しましたが、JSLint は有効な JavaScript であると言っています。flickrURL も有効な URL に設定されます。このエラーの原因についてはかなり当惑しています - どんな助けもいただければ幸いです。

編集: いじっていましたが、今回は getAppropriateSize が 1 回の呼び出しで flickr から 2 つの別々のメッセージを受け取りました。最初のものは

({stat:"fail", code:1, message:"Photo not found"})

2 つ目は、上記の TypeError も生成したサーバーからの完全な応答でした。しかし、2 番目の応答で写真が見つかり、サイズがわかりました。

4

0 に答える 0