У меня есть массив json:
[Object { path="/usr/share/htvcenter/storage/Windows", imgid="14698227485587"}, Object { path="/usr/share/htvcenter/storage/WindowsServer", imgid="14701636866762"}]
И я отправляю этот массив с помощью ajax:
$.ajax({ type: 'POST', url: urlstring, contentType: "application/json", data: JSON.stringify(parameters), success: function(data){ $('.lead').hide(); blackalert('Removed successfully!'); } });
Я вижу это в firebug для отправки почты:
Но ответ сервера с пустым $ _POST:
Код сервера:
if (isset($_GET['treeaction']) && $_GET['treeaction'] == 'remove') { echo 'here'; var_dump($_POST); die(); }
Что я делаю неправильно?
Когда вы отправляете запрос POST
вам не нужно устанавливать тип контента в application/json
. Таким образом, это уже не регулярный запрос POST (со значениями формы), а запрос полезной нагрузки.
Чтобы получить данные из запроса полезной нагрузки на вашем сервере, вы можете использовать:
$content = file_get_contents("php://input"); var_dump(json_decode($content)); // In case the content is a json string.
Если вы хотите отправить обычный запрос, вы можете использовать:
$.ajax({ type: 'POST', .... data: {'data' : parameters}, success: function(data){ alert(data); } });
Без contentType
и без JSON.stringify
.
Таким образом вы можете получить данные с помощью $_POST['data']