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

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-02 04:43:13733검색

Why are my AngularJS HTTP POST variables undefined in my PHP script?

PHP에 AngularJS HTTP 게시: 정의되지 않은 변수 해결

AngularJS 코드에서 PHP 스크립트에 게시된 데이터가 정의되지 않은 것으로 나타나는 문제가 발생합니다. . 이 문제를 해결하려면 세부 사항을 조사해야 합니다.

AngularJS 코드에서 "application/x-www-form-urlencoded"라는 Content-Type 헤더를 사용하여 HTTP POST 요청을 정의했습니다. 그러나 데이터는 쿼리 문자열 형식으로 지정되지 않습니다. PHP는 $_POST를 사용하여 양식으로 인코딩된 데이터를 수신합니다. 이를 위해서는 데이터를 키-값 쌍으로 형식화해야 합니다.

이 문제를 해결하려면 다음 두 가지 옵션이 있습니다.

옵션 1: JSON 사용

AngularJS는 기본적으로 HTTP에 "application/json" Content-Type 헤더를 사용합니다. 요청. PHP에서 원시 입력을 읽고 JSON을 역직렬화하여 이를 활용할 수 있습니다. 다음 PHP 코드를 사용하여 이 작업을 수행할 수 있습니다.

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

옵션 2: 쿼리 문자열 수동 형식 지정

$_POST 사용을 선호하는 경우 수동으로 형식을 지정할 수 있습니다. 데이터를 쿼리 문자열로 사용합니다. URL로 인코딩되었는지 확인하세요. JavaScript에서는 다음을 사용하여 이를 달성할 수 있습니다.

let data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);

HTTP 요청 데이터를 현재 형식 대신 이 형식의 쿼리 문자열로 설정합니다. 이러한 조정을 통해 AngularJS HTTP POST 요청은 데이터를 PHP 스크립트로 올바르게 전송하여 정의되지 않은 변수 문제를 해결합니다.

위 내용은 PHP 스크립트에서 AngularJS HTTP POST 변수가 정의되지 않은 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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