2015-07-09 2 views
4

Я использую Backbone, PHP (5.6) и Apache (2.4).не получает POST-данные с приложением/json

Проблема: При отправке данных с использованием модели Backbone model.save() массив $ _POST пуст на сервере.

Я знаю о различных способах исправить это.

Client путь: установка Backbone.emulateJSON к истинным или изменения источника Backbone.
Путь сервера: чтение необработанного тела вместо $ _POST.

Эти работы, но они чувствуют себя как хаки, и на самом деле они оказываются немного неудобными.
Кроме того, документ магистральная говорит:

Если вы работаете с веб-сервером унаследованной, которые не могут обрабатывать запросы, закодированных в виде приложения/JSON, установка Backbone.emulateJSON = истина; [исправить].

Так что это звучит как проблема с сервером. Как сделать мой сервер незаменимым?

+0

Это потому, что вы не можете обрабатывать методы PUT и DELETE? возможно дублировать http://stackoverflow.com/questions/9816274/ways-to-save-backbone-js-model-data – OIS

+0

спасибо, но я не верю, что это связано. – galki

+0

Вы проверили $ _SERVER ['REQUEST_METHOD']? Если это не POST, я не думаю, что заработает $ _POST. – OIS

ответ

1

Благодаря комментариям я понял, что это правильное поведение.

$ _POST предназначен для данных формы, в то время как данные json (application/json) должны быть получены из исходного ввода.

+0

Чтобы получить «исходный ввод», вам нужно «file_get_contents (« php: // input »); –

Смежные вопросы