我是第一次在 WordPress 中实现 ajax,但在这里遇到了一个块,我无法弄清楚这个问题。任何帮助表示赞赏。
所以我基本上是在尝试将数据传递给 WordPress 中的 ajax 回调。
JS:
window.utils.http({
method: 'POST',
url: ajaxurl + '?action=ajax_submit',
json: true,
headers: {
'Content-Type': 'application/json'
},
data: {
test: 'testing123',
quiz_results: {
'a': 1,
'b': 4,
'c': 2
}
},
onload: (response) => {
console.log(response);
},
})
注意:即使使用 jQuery 的 ajax 函数,我也会遇到同样的问题
函数.php :
function ajax_submit() {
print_r($_POST);
wp_die();
}
add_action('wp_ajax_ajax_submit', 'ajax_submit');
add_action('wp_ajax_nopriv_ajax_submit', 'ajax_submit');
我的 JS 控制台日志响应:
Array
(
[{"test":"testing123","quiz_results":{"a":0,"b":0,"c":0}}] =>
)
如您所见,php 数组的格式不正确,我也无法选择值。如果我echo $_POST['test']
或echo $_POST[0]->['test']
我一无所获。
谢谢
有时您无法通过 superglobal 访问数据$_POST
。在您的情况下,ajax_submit
像这样修改您的功能
function ajax_submit() {
// reading raw data from request body
$data = file_get_contents("php://input");
$data = json_decode($data, true);
wp_send_json( $data, 200);
wp_die();
}
有关更多信息,请参阅此答案
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句