> 백엔드 개발 > PHP 튜토리얼 > PHP의 $POST 및 $REQUEST 변수에서 Axios POST 요청 데이터가 누락되는 이유는 무엇입니까?

PHP의 $POST 및 $REQUEST 변수에서 Axios POST 요청 데이터가 누락되는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-22 23:17:29
원래의
996명이 탐색했습니다.

Why is Axios POST Request Data Missing from PHP's $POST and $REQUEST Variables?

PHP 변수에서 Axios 게시 매개변수를 사용할 수 없음

이 코드 조각은 Axios 라이브러리를 사용하여 POST 요청을 생성하고 Content-Type 헤더를 설정합니다. application/x-www-form-urlencoded:

axios({
    method: 'post',
    url,
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    data: {
        json,
        type,
    }   
})  
로그인 후 복사

그러나 해당 PHP 변수인 $_POST 및 $_REQUEST는 요청 후에도 비어 있습니다. 대신 file_get_contents("php://input")가 데이터를 수신하는 것으로 보입니다.

원인 및 해결 방법

Axios가 기본적으로 데이터를 직렬화하는 방식에서 불일치가 발생합니다. . JavaScript 객체를 JSON으로 변환하는데, PHP는 기본적으로 $_POST 채우기를 지원하지 않습니다. PHP는 HTML 양식에서 지원하는 기계 처리 가능 형식인 application/x-www-form-urlencoded 및 multipart/form-data만 허용합니다.

이 문제를 해결하려면 다음과 같은 몇 가지 옵션이 있습니다.

  • 브라우저:

    • URLSearchParams API 사용:

      var params = new URLSearchParams();
      params.append('param1', 'value1');
      params.append('param2', 'value2');
      axios.post('/foo', params); 
      로그인 후 복사
    • qs 라이브러리 사용 :

      var qs = require('qs');
      axios.post('/foo', qs.stringify({ 'bar': 123 }));
      로그인 후 복사
  • PHP 사용자 정의:

    • 다음 답변에 따라 JSON을 처리하도록 PHP를 조정하세요. [답변 링크]

위 내용은 PHP의 $POST 및 $REQUEST 변수에서 Axios POST 요청 데이터가 누락되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿