Javascript flightstats和jQuery-回调失败

Javascript flightstats和jQuery-回调失败,javascript,jquery,ajax,callback,Javascript,Jquery,Ajax,Callback,我一直在尝试查询flightstats API,现在(我想)我已经到了最后一个关口。。我有一个工作的ajax请求/响应,它返回正确的数据,但是总是调用error函数,而不是success。这是因为回调参数的使用方式,但我不知道需要什么,也找不到文档 下面是我的代码,请记住,如果我省略回调参数,我会得到相同的错误文本,就像我使用“&callback=…”、“&callback=?”、“?callback=…”或“?callback=?”包含它一样,因为在每种情况下,jQuery都会添加另一个回调参

我一直在尝试查询flightstats API,现在(我想)我已经到了最后一个关口。。我有一个工作的ajax请求/响应,它返回正确的数据,但是总是调用error函数,而不是success。这是因为回调参数的使用方式,但我不知道需要什么,也找不到文档

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

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

&appKey=&utc=false


如果不返回HTTP 200 OK代码,则会触发错误函数。

我找到了修复程序,代码如下。我没有在请求中指定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!'); }
        });
$.ajax({
键入:“GET”,
网址:'https://api.flightstats.com/flex/flightstatus/rest/v2/jsonp/flight/status/QF/1/dep/2013/08/22?appId=&appKey=&utc=false',
数据类型:“jsonp”,
jsonpCallback:“flightstatus”,
//jsonpCallback:“flightstatus”,
success:function(){console.log('success!');},
错误:函数(){console.log('Uh-Oh!');}
});

它正在返回HTTP 200 OK-也许我不够清楚,它得到了正确的响应以及json数据。我在jquery网站上读到了这篇文章。。我可以看出这是一个jquery问题,与API无关。。“当从远程服务器检索数据时(只能使用脚本或jsonp数据类型),将永远不会触发错误回调和全局事件。”因此,不应触发错误函数。我现在删除了它,但是json数据中出现了错误“uncaughtSyntaxError:Unexpected-token:22:1”。我将继续查看jquery文档。如果没有看到您的SSCE,我们无法判断这一点,但我也注意到您没有指定jsonpCallback函数,也没有指定contentType。也许你应该看看这里的一个工作示例:并使用其中一个。它是固定的-使用下面的代码。$。ajax({type:'GET',url:'',数据类型:'jsonp',jsonpCallback:'flightstatus',//jsonpCallback:'flightstatus',成功:function(){console.log('success!');},错误:function(){console.log!'('Uh-Oh!';}});
$.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!'); }
        });