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 중국어 웹사이트의 기타 관련 기사를 참조하세요!