You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery.ajax调用WordPress用户创建接口,成功回调参数全为undefined,如何解决?

问题分析与解决:Ajax回调参数undefined的原因

嗨,这个问题很常见,核心是你success回调的写法出错了!

你现在写的是:

success: self.handleUserResponse(),

这里的问题在于,你加了括号(),这会让JavaScript立即执行handleUserResponse方法,然后把它的返回值(因为这个方法没有return语句,所以返回undefined)当作success的回调函数。等到Ajax请求真正成功时,实际执行的是undefined,自然接收不到data、textStatus、jqXHR这些参数,所以你的三个console.log全是undefined。

修正方案

只需要去掉括号,把方法本身的引用传递给success,而不是调用它的结果:

jQuery.ajax({
    method: 'POST',
    dataType: 'json',
    url: ajax_object.ajax_url, // Post URL
    data: userData, // Data
    context: self,
    success: self.handleUserResponse, // 去掉括号,传递方法引用
    error: self.error
})

额外说明

因为你已经设置了context: self,所以当handleUserResponse执行时,方法内部的this会自动指向你的外部类对象self,和你预期的行为一致,不需要额外用bind来绑定上下文(当然如果后续有其他场景需要,也可以用self.handleUserResponse.bind(self),不过这里context配置已经足够)。

修正之后,当Ajax请求成功返回时,jQuery会自动把data、textStatus、jqXHR这三个参数传递给handleUserResponse,你的console.log就能正常输出对应的值了。

内容的提问来源于stack exchange,提问作者Avery Kushner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:38:21