>웹 프론트엔드 >JS 튜토리얼 >내 PHP 스크립트에서 내 AngularJS POST 변수가 정의되지 않은 이유는 무엇입니까?

내 PHP 스크립트에서 내 AngularJS POST 변수가 정의되지 않은 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-30 12:43:11127검색

Why Are My AngularJS POST Variables Undefined in My PHP Script?

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

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