2017-04-21 146 views
0

我寫了一些基於某人代碼的代碼。他們的代碼非常完美(見它here),但我給了我Uncaught TypeError: callback is not a functionTypeError - 「回調不是函數」

我的代碼片段:

ext.verify_acc = function(username, password, callback) { 
    $.ajax({ 
     url: '//api.bos2.cf/?type=verify&username=' + username + '&password=' + password + '&callback=?', 
     dataType: 'json', 
     success: function (responseText) { 
      messages = responseText['success']; 
      callback(messages); 
     } 
    }) 
}; 

此外,所有的代碼必須留在ext.verify_acc功能。如果有任何代碼不在其中,我想要此代碼執行的操作將不起作用。

而剛剛包住,則調用該函數的腳本:

var descriptor = { 
    blocks: [ 
     ['b', 'Check credentials %s %s', 'verify_acc', 'Username', 'Password'], 
    ]//          ^
};//           ^
//--------THE-FUNCTION-THAT-GETS-CALLED--------^------------------------------- 

向上上面的腳本呈現一個塊,如果你知道爲什麼它說點擊時調用函數

callback is not a function,那麼請告訴我。

+0

錯誤的哪部分你不明白?您需要傳遞迴調。 – SLaks

+0

@SLaks我認爲我做的一切都正確,但它給了我錯誤。我想知道我做錯了什麼。它不通過回調嗎? – csf30816

+0

@ csf30816沒有看到代碼從第二個代碼片段中取出代碼並在第一個代碼段中調用該函數,我們無法知道。 – Ken

回答

0

你只需要使用的功能,而不是函數名稱:

var descriptor = { 
    blocks: [ 
     ['b', 'Check credentials %s %s', ext.verify_acc, 'Username', 'Password'], 
    ] 
}; 

但我不認爲你得到的任何地方,如果我看到你所提到的源代碼。或者他們可能使用邪惡eval()

+0

我正在建立一個擴展的東西,所以我需要做的就是''''verify_acc''''。如果我嘗試做'''ext.verify_acc'''不會工作:( – csf30816

+0

然後只使用'verify_acc'而不是''verify_acc''。 – Yvan

相關問題