0

不确定我在这里遗漏了什么,如果你看看这段代码 - 你会看到我正在对 flickr 进行 jsonp 调用并获得成功的响应。然而,jQuery 总是调用“失败”方法而不是成功方法。

为什么?

{{已编辑}}

$.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); });
  });
4

1 回答 1

2

它失败了,因为您使用了错误的 jsonp 回调。

...
type: 'GET',
jsonpCallback: 'jsonFlickrFeed'
...

此外,在最新版本的 jQuery 中,jsonp 请求不会触发fail错误回调,async:false对于 jsonp 请求会被忽略,并且crossDomain不是必需的(jquery 为您设置)。

于 2013-02-11T18:27:30.310 回答