【发布时间】:2020-05-07 22:01:45
【问题描述】:
我的一个 php 文件中定义了一个简单的 php 函数,如下所示
add_action('wp_ajax_test','test');
add_action('wp_ajax_nopriv_test','test');
function test(){
echo "Hello";
}
我正在使用下面的 ajax 函数调用来调用上面的“测试”函数
jQuery(document).ready(function(){
jQuery('#prev_button_id').click(function(){
jQuery.post(
myAjax.ajaxurl,
{
action:"test",
success: (response)=>{
console.log('Success:'+ response);
},
error:(response)=>{
console.log('Failure:'+ response);
}
});
});
});
我期待“Hello”的控制台输出,但我得到低于未定义的响应
Success:undefined
Failure:undefined
【问题讨论】:
-
我认为你应该尝试
returning "Hello" 而不是echo它。我相信echo将字符串输出到输出媒体上。 -
试过
return "Hello";没有运气,同样的未定义响应。 @rkalra -
回声是正确的。您绝对必须在处理程序的末尾有一个 wp_die 或退出。不确定它是否会导致您的问题,但如果没有它,AJAX 处理程序将无法正常工作。
-
已添加
exit();响应没有变化 -
对不起,我帮助人们编写代码,但我不提供用户应该能够自己完成的代码。请阅读文档 - codex.wordpress.org/AJAX_in_Plugins。另外,“使用 json 的回声是正确的”应该是“使用 json 的回声是正确的”