jQuery ajax总是返回0

问题描述:

我的jquery ajax响应总是返回0.请帮助我在哪里做错了。在stackoverflow的所有其他答案已经过测试,但它没有奏效。 这里是我的代码jQuery ajax总是返回0

jQuery.ajax({ 
    type: "POST", 
    url: woocommerce_params.ajax_url,  //this give the correct url which is http://redhawk-studio.com/demos/rizwan/enrolment/wp-admin/admin-ajax.php 
    data: { 
    action: "my_test_action", 
    status_discount: status_discount1 
    }, 

    success: function (data) { 

     alert(data); 

    } 
}); 

这里是我的PHP代码

if($_POST['action'] == 'my_test_action'){ echo 'kkkkk'; exit; } 
+1

实际上你的php返回了什么?看看你的浏览器开发工具 –

+0

返回0 – user3376865

+0

'0'在你所显示的代码中是无处可见的,它不会输出或返回任何计数器值或类似的东西。 Ergo:_That_代码是_not_“返回0”。 – CBroe

出于安全原因,在WordPress,任何Ajax调用的处理函数必须终止执行PHP。如果没有,php执行终止由WordPress和输出结果被替换为0

为了使其按预期工作,所有你需要做的是在你的处理函数的最后补充一点:

wp_die(); 

对于更详细的解释,以及在使用Ajax的原则/准则WordPress,阅读ajax in plugins