PHP에서 Ajax의 JSON 데이터 디코딩
Ajax 요청에서 PHP 스크립트로 JSON 데이터를 보내려고 할 때 다음과 같은 문제가 발생할 수 있습니다. 데이터가 제대로 수신되지 않거나 구문 분석되지 않는 문제. 이를 해결하기 위한 일반적인 질문은 어떻게 하면 Ajax에서 JSON 데이터를 효과적으로 전송하고 이를 PHP에서 디코딩할 수 있느냐 하는 것입니다.
해결책
1. Content-Type 헤더 제거
Ajax 요청에서 contentType 헤더를 제거합니다:
$.ajax({ type: "POST", dataType: "json", url: "add_cart.php", data: {myData:dataString} });
2. 직접 변수 할당 사용
PHP에서는 json_decode를 사용하지 않고 $_POST에서 직접 JSON 데이터에 액세스합니다.
if(isset($_POST['myData'])){ $obj = $_POST['myData']; //some php operation }
이유
원래 코드가 작동하지 않는 이유는 contentType 헤더가 application/json으로 설정되었기 때문입니다. 이는 전송되는 데이터가 JSON 형식이라는 것을 PHP에 나타내지만 사실은 아닙니다. 데이터는 실제로 JSON 문자열이 포함된 일반 POST 쿼리입니다.
contentType 헤더를 제거하면 데이터가 일반 POST 쿼리로 전송되고 PHP가 문자열 변환을 자동으로 처리할 수 있습니다.
위 내용은 PHP에서 Ajax의 JSON 데이터를 디코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!