2017-04-21 107 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

相关问题