0

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

下面是我的代码,请记住,如果我省略回调参数,我会得到相同的错误文本,就像我使用 "&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 
4

2 回答 2

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!'); }
        });
于 2013-08-28T18:23:22.487 回答
1

如果调用的 URL,在这种情况下:

https://api.flightstats.com/flex/flightstatus/rest/v2/json/flight/status/QF/1/dep/2013/08/22?appId= &appKey=&utc=false

不返回 HTTP 200 OK 代码,那么您的错误函数将被触发。

于 2013-08-24T11:10:14.817 回答