문제 설명:
AngularJS에서 HTTP POST 요청을 수행할 때 PHP 스크립트에 PHP 스크립트는 게시된 양식에 대해 정의되지 않은 값을 수신합니다. data.
원인:
AngularJS는 application/json에 대한 HTTP Post 요청의 Content-Type 헤더를 기본값으로 설정합니다. 그러나 질문의 샘플 코드는 Content-Type 헤더를 application/x-www-form-urlencoded로 설정합니다. 결과적으로 AngularJS에서 보낸 데이터는 PHP의 $_POST 기능에 대해 예상되는 형식이 아닙니다.
해결책 1:
기본 AngularJS Content-Type 헤더를 사용하세요. application/json을 복사하고 PHP에서 원시 입력을 읽은 다음 역직렬화합니다. JSON.
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
해결책 2:
$_POST 기능을 사용하는 경우 데이터에서 쿼리 문자열을 구성하여 요청 본문으로 전송합니다. 쿼리 문자열은 URL로 인코딩됩니다.
data = "email=" + encodeURIComponent($scope.email) + "&password=" + encodeURIComponent($scope.password);
위 내용은 AngularJS에서 PHP로 POST: 내 변수가 정의되지 않은 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!