Вложенные параметры не работают в данных jQuery.ajax (): - PullRequest
0 голосов
/ 01 ноября 2018

Доброе утро всем,

Я искал ответ и действительно не сталкивался с чем-то, что сработало, поэтому я наконец спрашиваю здесь, прежде чем вырвать оставшиеся волосы.

Я в основном пытаюсь имитировать, как если бы я обработал входные данные формы с именами массивов, используя jQuery.param () для обработки вложенного объекта.

Например, если входные данные выглядели так

<input type="text" name="ajax_input[ajax_action]" value="get_column_settings" /><input type="text" name="ajax_input[column_name]" value="text_column" />

Я думаю, что вызов ajax будет выглядеть так:

jQuery.ajax({
url: '/path_to_ajax.php',
data: jQuery.param({'ajax_input':{'ajax_action':'get_column_settings','column_name':'test_column'}}),
    type: 'post',
dataType: "json"}).done(function(data){alert('Success!');});

И тогда я предполагаю, что получу данные на сервере следующим образом:

<?php echo 'Action:'.$_POST['ajax_input']['ajax_action'].' Column Name:'.$_POST['ajax_input']['column_name'];?>

Однако я получаю сообщение об ошибке «Не удалось загрузить ресурс: сервер ответил со статусом 400 (неверный запрос)»

Если я изменю данные: на

data: jQuery.param({'ajax_action':'get_column_settings','column_name':'test_column'})

И получить его на сервере примерно так:

<?php echo 'Action:'.$_POST['ajax_action'].' Column Name:'.$_POST['column_name'];?>

Все работает как положено.

Что-то не так с тем, как я отформатировал вложенный объект, вызывая ошибку неверного запроса, или ошибка вызвана тем, как я получаю его на стороне сервера?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...