2016-02-09 139 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