400 BAD REQUEST. (Ajax Wordpress)
Читал по инструкциям, примерам и похожим запросам и всё равно ошибка остаётся.
Сервер локальный.
HTML:
<form action="" method="POST" id="form">
<input type="text" name="dragon">
<input type="submit" value="submit">
</form>
JS:
$("#form").on('submit', function(){
var data = {
val: $('#form input').val() ,
action: 'udapte_data'
}
$.ajax({
url: '/wp-admin/admin-ajax.php',
type: 'POST',
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(data),
})
})
PHP:
add_action( 'wp_ajax_udapte_data', 'udapte_data' );
function udapte_data(){
update_user_meta(1, 'dragon', $_POST('dragon'));
die;
}
Ответы (1 шт):
Автор решения: Алексей
→ Ссылка
Не переопределяйте contentType
JS:
jQuery("#form").on('submit', function (event) {
event.preventDefault();
var data = {
action: 'udapte_data',
val: jQuery('#form input').val()
}
jQuery.ajax({
url: '<?php echo admin_url('admin-ajax.php'); ?>',
type: 'POST',
data: data,
})
})
PHP:
add_action( 'wp_ajax_udapte_data', 'udapte_data_cb' );
add_action( 'wp_ajax_nopriv_udapte_data', 'udapte_data_cb' );
function udapte_data_cb(){
update_user_meta(1, 'dragon', $_POST['val']);
die();
}
Либо если хотите отправлять JSON, вручную обрабатывайте данные на стороне сервера. Тут можно почитать ответы по этой теме тема1 тема2