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