2013-06-02 2 views
1

Я просто экспериментировал с AngularJS и довольно новичок в этом. Я делаю http-вызов для своего php-сервиса, используя $http. Я заметил, что данные, которые я передаю при выполнении почтового вызова, не читаются на стороне php - я пробовал var_dump($_REQUEST);, и он просто показал пустой массив. Один и тот же вызов, когда он был сделан сjQuery, показал, что данные прошли.

Затем я нашел сообщение Stackoverflow, в котором кто-то попросил, чтобы данные были прочитаны как file_get_contents('php://input');, а не с $_REQUEST. Я попробовал это, и теперь мне удалось получить данные, используя AnglerJS's $http. Однако, когда я пытался сделать вызов Get с помощью метода AngularJS $ http, file_get_contents('php://input'); показывает NULL, тогда как $_REQUEST показывает, что данные прошли.

Я смущен относительно того, что именно эти два являются и как решить эту проблему?

+0

http://www.php.net/manual/en/reserved.variables.request.php vs. http://www.php.net/manual/en/wrappers.php.php – CBroe

ответ

0

С запросом GET вы отправляете все данные как часть URL-адреса. Но когда вы отправляете запрос с данными, которые не являются частью URL-адреса (с использованием свойства data$http), Угловой отправляет данные запроса как JSON в полезной нагрузке запроса. Однако PHP заполняет переменную запроса POST из строки с кодировкой url пар ключ-значение, имеющей тип содержимого запроса x-www-form-urlencoded. Вы можете send data as application/x-www-form-urlencoded from Angular, но я бы придерживался JSON.

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