Javascript Jquery Ajax没有拾取options参数中指定的函数回调

Javascript Jquery Ajax没有拾取options参数中指定的函数回调,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有下面的js函数,我遇到了一个问题,成功回调从未被调用。我在chrome debugger中浏览了相关的JQuery代码,它在options参数中拾取header对象,但没有回调,例如success、done、always和error。它只是跳过了它们,我不知道为什么。我已经尝试将url指定为选项中的一个条目,并按照我的预期选择它 Forex.getInstrumentList = function(){ var response; $.ajax("https://api-fxprac

我有下面的js函数,我遇到了一个问题,成功回调从未被调用。我在chrome debugger中浏览了相关的JQuery代码,它在options参数中拾取header对象,但没有回调,例如success、done、always和error。它只是跳过了它们,我不知道为什么。我已经尝试将url指定为选项中的一个条目,并按照我的预期选择它

Forex.getInstrumentList = function(){
  var response;
  $.ajax("https://api-fxpractice.oanda.com/v1/instruments?accountId=" + Forex.selectedAcct,
  {

    success: function(data, err, jqXHR){
      if(err){
        console.log(err);
        return;
      }
      response = data;
    },

    headers: {
      Authorization: "Bearer notMyrealkey345234234wstd3451345"
    }
  });

  return response; //JSON
}
我从调试器中获取了以下内容,如您所见,success函数甚至不在options参数中。我不知道从哪里或如何开始修复此问题,因此非常感谢您的帮助

以及$.ajax函数的选项参数值

url = "https://api-fxpractice.oanda.com/v1/instruments?accountId=4161836", options = Object {headers: Object}

因此,jQuery在需要运行回调之前不会读取回调。由于它是一个AJAX调用,并且默认情况下
async
true
,因此调试器在执行web请求时会逐步执行该调用,然后仅在请求完成后返回到success函数。如果您将
async
选项设置为
false
,那么它将被修复,因为它将阻塞,直到您真正获得响应为止。如果不这样做,它将返回null,因为success函数没有运行,因此没有修改
response

重复的“not callbacks,比如success、done、always和error”-其中三个没有出现在问题的代码中。尝试添加
数据类型:“json”
,如果(!err){console.log(err);一点意义都没有。我尝试过所有这些,但都没有效果。我只需要成功,所以我发布了赤裸裸的版本。