AngularJS에서 전송된 HTTP POST는 PHP에서 정의되지 않은 POST 변수를 생성합니다
설정에서 AngularJS 애플리케이션은 HTTP POST 요청을 PHP로 보냅니다. 스크립트이지만 PHP 스크립트는 '이메일' 및 '비밀번호' POST에 대해 정의되지 않은 값을 수신합니다.
원인 디버깅
문제는 AngularJS에서 전송한 Content-Type 헤더와 PHP에서 예상하는 데이터 형식이 일치하지 않는다는 데 있습니다. AngularJS는 기본 Content-Type 헤더로 application/json을 사용하지만 PHP 스크립트는 양식으로 인코딩된 데이터를 기대합니다.
해결책 1: PHP에서 Application/JSON 사용
한 가지 해결책은 AngularJS의 Content-Type 헤더를 application/json으로 변경하고 PHP를 사용하는 것입니다. file_get_contents("php://input")를 사용하여 원시 요청 본문을 검색합니다. 그런 다음 JSON에서 데이터를 역직렬화할 수 있습니다.
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
해결책 2: 양식 인코딩 데이터 보내기
또는 양식 인코딩 데이터를 보내도록 AngularJS를 구성할 수 있습니다. . 여기에는 수동으로 쿼리 문자열을 작성하거나 jQuery.serialize()를 사용하는 작업이 포함됩니다. 그런 다음 쿼리 문자열을 URL로 인코딩하고 요청 데이터로 설정해야 합니다.
$email = $_POST['email']; $pass = $_POST['password'];
사용되지 않는 메서드
.success() 및 .error() 메서드에 유의하세요. 코드에 언급된 내용은 더 이상 사용되지 않습니다. 대신 .then()을 사용하세요.
위 내용은 내 PHP 스크립트에서 내 AngularJS POST 변수가 정의되지 않은 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!