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