我一直在尝试查询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
答案 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!'); }
});