«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему мои значения Angular HTTP POST не определены в PHP и как это исправить?

Почему мои значения Angular HTTP POST не определены в PHP и как это исправить?

Опубликовано 23 декабря 2024 г.
Просматривать:117

Why are my Angular HTTP POST values undefined in PHP, and how can I fix it?

Angular HTTP POST to PHP: работа с неопределенными значениями POST

В AngularJS выполнение HTTP POST-запросов к конечным точкам PHP иногда может привести к неопределенному результату Значения POST на стороне сервера. Это может произойти, если существует несоответствие между ожидаемым форматом данных и фактическими данными, отправленными приложением Angular.

Чтобы решить эту проблему, крайне важно убедиться, что заголовок Content-Type установлен правильно. По умолчанию AngularJS устанавливает для этого заголовка значение «application/json». Однако если вы отправляете данные, закодированные в форме, это необходимо переопределить.

В предоставленном коде следующая строка устанавливает для заголовка Content-Type значение «application/x-www-form-urlencoded; charset=UTF-8":

$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';

Однако для этого необходимо изменить отправляемые данные, чтобы они соответствовали формату, закодированному в форме. Вместо отправки данных в виде объекта их необходимо преобразовать в строку запроса. Это можно сделать с помощью jQuery.serialize() или вручную создать строку запроса с помощью encodeURIComponent().

В качестве альтернативы, если вы предпочитаете использовать функциональность PHP $_POST, вы можете сохранить настройку заголовка по умолчанию и изменить PHP-код для чтения необработанных входных данных из тела запроса и декодирования JSON. Этого можно добиться с помощью следующего кода:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
$pass = $request->password;

Совместив настройки формата данных и заголовка, вы можете гарантировать, что значения POST будут правильно получены на стороне PHP.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3