Jquery Ajax没有选择在options参数

时间:2016-02-09 17:22:58

标签: javascript jquery ajax

我有以下js函数,我遇到一个问题,即永远不会调用成功回调。我在chrome调试器中逐步完成了相关的JQuery代码,它正在选择参数中的头对象,而不是成功,完成,始终和错误等回调。它只是跳过它们,我不知道为什么。我已经尝试将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
}

我从调试器中获取了以下内容,正如您所看到的,成功函数甚至不在options参数中。我不知道在哪里或如何开始修复它,所以任何帮助都表示赞赏!

url和$ .ajax函数的选项参数值

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

1 个答案:

答案 0 :(得分:-1)

所发生的事情是,jQuery在需要运行之前不会读取回调。由于默认情况下它是一个AJAX调用而asynctrue,调试器会在执行Web请求时逐步执行它,然后只在请求发出后返回到成功函数完成。如果您将async选项设置为false,那么它会被修复,因为它会阻止,直到您实际收到回复为止。如果你没有,它将返回null,因为成功函数没有运行,因此没有修改response的值