>백엔드 개발 >PHP 튜토리얼 >PHP에서 Angular HTTP POST 값이 정의되지 않은 이유는 무엇이며 어떻게 해결할 수 있나요?

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

Barbara Streisand
Barbara Streisand원래의
2024-12-15 15:33:15396검색

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;

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

위 내용은 PHP에서 Angular HTTP POST 값이 정의되지 않은 이유는 무엇이며 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.