flightstats和jQuery - 回调失败

时间:2013-08-24 11:08:07

标签: javascript jquery ajax callback

我一直在尝试查询flightstats API,我现在(我认为)处于最后的障碍。我有一个工作的ajax请求/响应,它返回正确的数据,但是错误函数总是被调用而不是成功。这是因为回调参数的使用方式,但我不知道什么是必需的,无法找到文档。

下面是我的代码,请记住,如果我省略了回调参数,我会得到相同的错误文本,好像我使用“& callback = ...”,“& callback =?”,“ ?callback = ...“或”?callback =?“因为在每个案例中jQuery都会添加另一个回调参数!

$.ajax({
    url: 'https://api.flightstats.com/flex/flightstatus/rest/v2/json/flight/status/QF/1/dep/2013/08/22?appId=<appId>&appKey=<appKey>&utc=false',
    data: {},
    dataType: 'jsonp',
    cache: false,
    success: function(data) {
        $('#response').html(data);
    },
    error: function(xhr, ajaxOptions, thrownError) { //do with ajax errors
        console.log('Fail: ' + thrownError);
    }
});

和console.log错误:

Fail: Error: jQuery110105137549804057926_1377341987289 was not called 

2 个答案:

答案 0 :(得分:1)

如果是被叫URL,在这种情况下:

https://api.flightstats.com/flex/flightstatus/rest/v2/json/flight/status/QF/1/dep/2013/08/22?appId=&安培; APPKEY =安培; UTC =假

不会返回HTTP 200 OK代码,然后会触发您的错误功能。

答案 1 :(得分:1)

我找到了修复程序,代码如下。我没有在请求中指定jsonp,所以返回的格式是普通的json,我也不了解jsonp的细微差别,并通过其他stackoverflow问题找出它。

$.ajax({
          type: 'GET',
          url: 'https://api.flightstats.com/flex/flightstatus/rest/v2/jsonp/flight/status/QF/1/dep/2013/08/22?appId=<appId>&appKey=<appKey>&utc=false',
          dataType: 'jsonp',
          jsonpCallback: 'flightstatus',
          //jsonpCallback: 'flightstatus',
          success: function() { console.log('Success!'); },                                                                                  
          error: function() { console.log('Uh Oh!'); }
        });