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