>백엔드 개발 >PHP 튜토리얼 >PHP 스크립트에서 AngularJS $http.post() 변수가 정의되지 않은 이유는 무엇입니까?

PHP 스크립트에서 AngularJS $http.post() 변수가 정의되지 않은 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-22 16:22:14547검색

Why are my AngularJS $http.post() variables undefined in my PHP script?

AngularJS: PHP를 사용한 HTTP POST 정의되지 않은 변수

$http.post()를 사용하여 AngularJS 양식을 제출할 때 PHP에서 변수를 수신합니다. 200 OK를 받았음에도 불구하고 스크립트가 정의되지 않은 것으로 나타날 수 있습니다.

원인

기본적으로 AngularJS는 HTTP POST 요청에 대해 Content-Type 헤더를 application/json으로 설정합니다. 그러나 JSON 데이터 대신 양식으로 인코딩된 페이로드가 전송되면 PHP는 $_POST 배열을 예상대로 채우지 않습니다.

해결책

두 가지 기본 해결 방법이 있습니다.

  1. 기본 JSON 사용 헤더:

    • application/json의 기본 Content-Type 헤더를 유지합니다.
    • PHP에서 원시 입력을 읽고 json_decode()를 사용하여 JSON 데이터를 역직렬화합니다.
  2. 보내기 양식 인코딩 데이터:

    • Content-Type 헤더를 application/x-www-form-urlencoded로 설정합니다.
    • email=example과 같은 쿼리 문자열을 수동으로 구성합니다. @email.com&password=secret 데이터 페이로드로 전송하세요.
    • 다음을 사용하여 쿼리 문자열을 URL 인코딩해야 합니다. encodeURIComponent().

수정된 PHP의 예

두 번째 해결 방법:

$query_string = file_get_contents("php://input");
parse_str($query_string, $data);
$email = $data['email'];
$password = $data['password'];

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

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