Поэтому я пытаюсь отправить JSON в виде строки. Затем у меня есть PHP- json_decode
который извлекает эту строку JSON и анализирует ее с помощью json_decode
.
К сожалению, я не могу отправить этот JSON в виде строки.
Вот сценарий jQuery Ajax, который я использовал:
var jsonString = JSON.stringify(checkables); console.log(jsonString); $.ajax({ url: $url, type: 'POST', data: {ajaxidate: JSON.stringify(jsonString)}, contentType: "application/json; charset=UTF-8", success: function (data) { // just successful callback }, error: function () { // just error callback } });
Переменные checkables
содержат сырую форму как данные JSON:
После применения JSON.stringify()
теперь это выглядит так: [{"name":"name","type":"multialphanumslug","value":"AD"},{"name":"server","type":"host","value":"10.1.1.1"},{"name":"port","type":"number","value":"8080"},{"name":"authid","type":"username","value":"barryallen"}]
В фоновом режиме у меня есть этот PHP-скрипт:
<?php var_dump($_POST); die(); ?>
Теперь я полагаю, что $ _POST в back-end теперь должен содержать следующее:
array ('ajaxidate' => "[{\" name \ ": \" name \ ", \" type \ ": \" multialphanumslug \ ", \" value \ ": \" AD \ "}, {\" название \ ": \" сервер \», \ "Тип \": \ "хозяина \", \ "значение \": \ "10.1.1.1 \"}, {\ "имя \": \ "порт \", \ "типа \": \ "номер \", \ "значение \": \ "8080 \"}, {\ "имя \": \ "AUTHID \", \ "типа \": \ "имя пользователя \", \ "value \": \ "barryallen \"}] ");
Но ничего не получилось. Вот захваченный запрос:
Ответ от back-end?
Я попытался с POSTMan, и я получил ожидаемый правильный вывод:
Теперь это было смешно.
Я застрял на этом в течение 2 дней, пытаясь понять, что происходит или что я пропустил. Любая помощь будет оценена.