为什么jQuery说我的ajax jsonp调用失败了?

时间:2013-02-11 18:25:45

标签: jquery jsonp

不确定我在这里缺少什么,如果你看看这段代码 - 你会看到我正在对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); });
  });

1 个答案:

答案 0 :(得分:2)

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

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

另外,在jQuery的最新版本中,jsonp请求在错误时不会触发fail回调,jsonp请求会忽略async:false,并且crossDomain不是必需的(jquery集)对你而言)。