有时,对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。然而,第二个回应找到了照片并给了我尺寸。