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 刚刚收到来自 flickr 的两条单独消息,用于一次通话。第一个是

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

第二个是来自服务器的完整响应,它也产生了上面提到的 TypeError。然而,第二个回复找到了照片并给了我尺寸。

4

0 回答 0