"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP에서 Angular HTTP POST 값이 정의되지 않은 이유는 무엇이며 어떻게 해결할 수 있나요?

PHP에서 Angular HTTP POST 값이 정의되지 않은 이유는 무엇이며 어떻게 해결할 수 있나요?

2024년 12월 23일에 게시됨
검색:179

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

PHP에 대한 Angular HTTP POST: 정의되지 않은 POST 값 처리

AngularJS에서 PHP 엔드포인트에 대한 HTTP POST 요청을 수행하면 때때로 정의되지 않은 POST 값이 발생할 수 있습니다. 서버 측의 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 기능을 사용하려는 경우 기본 헤더 설정을 유지하고 요청 본문에서 원시 입력을 읽고 JSON을 디코딩하는 PHP 코드입니다. 이는 다음 코드를 사용하여 달성할 수 있습니다:

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

데이터 형식과 헤더 설정을 정렬하면 PHP 측에서 POST 값이 올바르게 수신되는지 확인할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3