PHP에 대한 Angular HTTP POST: 정의되지 않은 POST 값 처리
AngularJS에서 PHP 엔드포인트에 대한 HTTP POST 요청을 수행하면 때때로 정의되지 않은 POST 값이 발생할 수 있습니다. 서버 측의 POST 값. 이는 예상 데이터 형식과 Angular 애플리케이션에서 보낸 실제 데이터가 일치하지 않을 때 발생할 수 있습니다.
이 문제를 해결하려면 Content-Type 헤더가 적절하게 설정되어 있는지 확인하는 것이 중요합니다. 기본적으로 AngularJS는 이 헤더를 "application/json"으로 설정합니다. 그러나 양식으로 인코딩된 데이터를 전송하는 경우 이를 재정의해야 합니다.
제공된 코드에서 다음 줄은 Content-Type 헤더를 "application/x-www-form-urlencoded; charset=UTF-8":
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
그러나 이를 위해서는 전송된 데이터를 양식 인코딩 형식과 일치하도록 수정해야 합니다. 데이터를 개체로 보내는 대신 쿼리 문자열로 변환해야 합니다. 이는 jQuery.serialize()를 사용하거나 encodeURIComponent()를 사용하여 쿼리 문자열을 수동으로 작성하여 수행할 수 있습니다.
또는 PHP의 $_POST 기능을 사용하려는 경우 기본 헤더 설정을 유지하고 요청 본문에서 원시 입력을 읽고 JSON을 디코딩하는 PHP 코드입니다. 이는 다음 코드를 사용하여 달성할 수 있습니다:
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
데이터 형식과 헤더 설정을 정렬하면 PHP 측에서 POST 값이 올바르게 수신되는지 확인할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3