Javascript 为$.post ajax请求定义自定义句柄函数
错误:未捕获引用错误:getUsers未定义数据Javascript 为$.post ajax请求定义自定义句柄函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,错误:未捕获引用错误:getUsers未定义数据 如何为ajax请求指定自定义回调函数?数据应该是回调函数定义中的参数,而不是函数调用中用作参数的变量: function getUsers() { $.post("/admin/getusers", { username: username_input.val() }, showUsers(data)); } 您可以将此函数定义作为回调参数传递: function callback(data) { /*
如何为ajax请求指定自定义回调函数?
数据应该是回调函数定义中的参数,而不是函数调用中用作参数的变量:
function getUsers()
{
$.post("/admin/getusers",
{
username: username_input.val()
}, showUsers(data));
}
您可以将此函数定义作为回调参数传递:
function callback(data) { /* data is available here */ }
然后在函数体内部调用您的showUsers
,在收到响应后调用函数时,data
可用:
$.post("/admin/getusers", ..., function callback(data) { /* data is available here */ });
或者缩短,ES6-y:
$.post("/admin/getusers", ..., function callback(data) { showUsers(data) });
数据
应该是回调函数定义中的参数,而不是函数调用中用作参数的变量:
function getUsers()
{
$.post("/admin/getusers",
{
username: username_input.val()
}, showUsers(data));
}
您可以将此函数定义作为回调参数传递:
function callback(data) { /* data is available here */ }
然后在函数体内部调用您的showUsers
,在收到响应后调用函数时,data
可用:
$.post("/admin/getusers", ..., function callback(data) { /* data is available here */ });
或者缩短,ES6-y:
$.post("/admin/getusers", ..., function callback(data) { showUsers(data) });
看来showUsers是您的成功功能,因此只需将其作为以下内容传递:
$.post("/admin/getusers", ..., data => showUsers(data));
看来showUsers是您的成功功能,因此只需将其作为以下内容传递:
$.post("/admin/getusers", ..., data => showUsers(data));
您正在调用函数,而不是向其传递参数。。。用function(data){…}
包装它,看起来showUsers就是成功的函数。So$.post(url、obj、showUsers)代码>@James omg,我怎么会错过呢。让它成为一个答案,这样我就可以接受你调用函数而不是传递一个参数。。。用function(data){…}
包装它,看起来showUsers就是成功的函数。So$.post(url、obj、showUsers)代码>@James omg,我怎么会错过呢。回答这个问题,这样我就可以接受更短的itOr:$.post(“/admin/getusers,…,showUsers”)代码>谢谢您的解释,但正如@James上面提到的,解决我的问题更方便的方法是只传递函数名作为参数。无论如何谢谢你!是的,如果函数签名匹配,而您不关心“this”,那么这就行了。或者更简短一些:$.post(“/admin/getusers”,…,showUsers)代码>谢谢您的解释,但正如@James上面提到的,解决我的问题更方便的方法是只传递函数名作为参数。无论如何谢谢你!是的,如果函数签名匹配,而您不关心“this”,那么这就行了。Nit:showUsers
不被调用(也不应该被调用)。它应该传递给$.post
,以便$.post
可以调用它。@FelixKling足够公平:)@FelixKling我认为这是一个打字错误)Nit:showUsers
没有被调用(也不应该被调用)。它应该传递给$.post
,以便$.post
可以调用它。@FelixKling足够公平:)@FelixKling我认为这是一个打字错误)