Ошибка при отправки JSON на cервер методом POST

176
20 ноября 2018, 17:20

Через ajax отправляю POST запрос на сервер в формате JSON:

Вот javascript код:

После, сервер принимает $_POST данные и с помощью функции json_decode() декодирует в JSON формат:

Но в итоге выдает ошибку:

Вообще при команде print_r($_POST) сервер выдает пустой массив.

В чем же ошибка?

Answer 1

JS

let data=JSON.stringify({name:'Celestia',age:2385,city:'Canterlot'})
$.ajax({
  url:'ponyville/student/twilightSparkle.nerd',
  type:'POST',
  contentType:'application/JSON',
  data:{data},
  success:data=>alert('Equestria was saved again!')
})

PHP

if(isset($_POST)) var_dump(json_decode($_POST['data']));

Вы пытались декодировать суперглобальный массив, на что получали справедливую ошибку. Пуст он был от того, что с клиента нужно отправлять данные в виде объекта, которые затем, по одноимённому ключу, можно получить на сервере из $_POST массива.

READ ALSO
Запись объектов класса в файл json

Запись объектов класса в файл json

Есть некоторый массив, содержащий объекты определенного класса $arrayВопрос, как закодировать этот массив в json формат, если json_encode($array) не работает...

168
Как записывать русские буквы в json файл на php?

Как записывать русские буквы в json файл на php?

При вызове функции file_put_contents() в файле появляются кракозябры вида \u041a\u0438\u0440\ на месте русских буквНасколько понял, дело в кодировке

244
Нахождение всех перестановок массива

Нахождение всех перестановок массива

Есть массив элементов, и необходимо вычислить все возможные варианты упорядочения массива

194
YouCompleteMe не работает с заголовочными файлами

YouCompleteMe не работает с заголовочными файлами

Недавно решил установить YouCompleteMe и обнаружил, что, несмотря на то, что все прекрастно работает сcpp файлами, тем не менее автодополнение не работает...

306