Доброе утро всем,
Я искал ответ и действительно не сталкивался с чем-то, что сработало, поэтому я наконец спрашиваю здесь, прежде чем вырвать оставшиеся волосы.
Я в основном пытаюсь имитировать, как если бы я обработал входные данные формы с именами массивов, используя 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'];?>
Все работает как положено.
Что-то не так с тем, как я отформатировал вложенный объект, вызывая ошибку неверного запроса, или ошибка вызвана тем, как я получаю его на стороне сервера?
Заранее спасибо!