2016-02-09 40 views
-1

我有以下js函数,我遇到了成功回调从未被调用的问题。我在chrome调试器中浏览了相关的JQuery代码,它在options参数中选取了header对象,但没有成功,完成,总是和错误等回调。它只是跳过它们,我不知道为什么。我已经尝试将url指定为选项中的条目,并且按照我的预期提取它。Jquery Ajax没有选择函数回调中指定的函数回调参数

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 
} 

我抓住从调试器下面,你可以看到,成功的功能是不是即使在选项的说法。我不知道在哪里或如何开始解决这个问题,所以任何帮助表示赞赏!

网址,并选择参数值的$就功能

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

http://stackoverflow.com/questions/16744066/jquery-ajax- done-function-not-firing – Darshan

+0

“不回调,如成功,完成,总是和错误” - 其中三个没有出现在你的问题的代码中。 – Quentin

+0

尝试添加'datatype:'json'',但仍然不工作 – Cayle

回答

-1

那么是什么情况是,直到他们需要运行jQuery的不读取回调。由于这是一个AJAX调用,默认情况下asynctrue,因此调试器在执行Web请求时会逐步完成,然后只有在请求完成后才能返回成功功能。如果您将async选项设置为false,则它将被修复,因为它会阻止,直到您实际获得响应。如果你不这样做,它将返回null,因为成功函数没有运行,因此没有修改值response