为什么WP AJAX总是返回0


Why WP AJAX always return 0?

试图得到答案,但返回0。JS在脑海中:

q = new XMLHttpRequest();
q.open('POST', ajaxUrl);
q.onreadystatechange = function () {
    if (q.readyState === 4) {
        console.log(q.response);
    }
};
var data = {
    'action': 'check_email'
};
q.send(JSON.stringify(data));

ajaxUrl 链接到 admin_url('admin-ajax.php');function.php中的代码:

function check_email() {
    echo 'true or false';
    die();
}
add_action('wp_ajax_check_email', 'check_email');
add_action('wp_ajax_nopriv_check_email', 'check_email');

假设 json 请求有效,请将内容类型设置为 json

q.setRequestHeader('Content-Type', 'application/json');

如果不是发送application/x-www-form-urlencoded

q.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
...
q.send('action=check_email');

q.responseText就是你要找的。