不确定我在这里缺少什么,如果你看看这段代码 - 你会看到我正在对flickr进行jsonp调用并获得成功的响应。但是,jQuery总是调用'fail'方法而不是成功方法。
为什么?
{{EDITED}}
$.ajax({
url: 'http://api.flickr.com/services/feeds/photos_public.gne?format=json&tags=fun&tagmode=any',
dataType: 'jsonp'
})
.done(function(data, status) {
console.log( 'data count:', data.query.results.json.json.length );
$('#result-count').text( JSON.stringify(data.query.results.json.json) );
})
.fail(function(xhr, err) {
console.log( 'Sample of error data:', err );
console.log("readyState: "+xhr.readyState+"\nstatus: "+xhr.status+"\nresponseText: "+xhr.responseText); });
});
答案 0 :(得分:2)
它失败了,因为你使用了错误的jsonp回调。
...
type: 'GET',
jsonpCallback: 'jsonFlickrFeed'
...
另外,在jQuery的最新版本中,jsonp请求在错误时不会触发fail
回调,jsonp请求会忽略async:false
,并且crossDomain
不是必需的(jquery集)对你而言)。