2014-12-07 262 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