2014-12-07 263 views
0

试图得到答案,但在头返回0 JS:为什么WP AJAX总是返回0?

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( '管理-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'); 
+0

确定WP AJAX接受JSON的身体吗?从我见过它通常在应用程序/ x-www-form-urlencoded或multipart/form-data POST body – Musa 2014-12-07 14:29:14

+0

我在互联网的例子中看到它,'q.send('action = check_email');'也会返回零。 – rekzi 2014-12-07 15:23:35

回答

1

假设一个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'); 
+0

谢谢,它的工作原理。 – rekzi 2014-12-07 16:26:00

+0

嗨@rekzi,如果有效,请点击答案旁边的upvote图标,以表示对Musa的感谢:) – jabbink 2014-12-07 17:37:58

0

​​是你在找什么。

+0

'responseText:“0”' – rekzi 2014-12-07 15:18:45