>  기사  >  백엔드 개발  >  PHP가 JSON을 반환하는데도 jQuery의 AJAX 호출이 잘못된 데이터를 수신하는 이유는 무엇입니까?

PHP가 JSON을 반환하는데도 jQuery의 AJAX 호출이 잘못된 데이터를 수신하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-31 20:55:17825검색

Why is jQuery's AJAX Call Receiving Incorrect Data Even Though PHP is Returning JSON?

PHP는 jQuery AJAX 호출에 JSON을 반환합니다

jQuery의 AJAX 기능을 통해 PHP와 통신하려는 노력에도 불구하고 계속해서 " 선택기 활성화됨' 오류가 발생했습니다. 또한 검색된 데이터가 잘못된 것으로 나타납니다. 문제를 자세히 조사하고 잠재적인 원인을 파악해 보겠습니다.

JSON 반환이 포함된 PHP

아래 제공된 스니펫은 PHP에서 JSON 데이터를 반환하는 방법을 보여줍니다.

<code class="php">header('Content-Type: application/json');
echo json_encode([
  'return' => 1,
  'msg1' => 'Message sent OK, we will be in touch ASAP'
]);
exit;</code>

header('Content-Type: application/json')가 포함된 것을 확인하세요. echo 앞에 JSON 콘텐츠 유형을 지정합니다.

JavaScript 및 AJAX

아래 JavaScript 코드는 AJAX 호출을 성공적으로 처리해야 합니다.

<code class="javascript">$('#msgid').html('<h1>Submitting Form (External Routine)</h1>');
if ($('#formEnquiry').valid()) {
  $("#msgid").append("<h1>(Outside Ready) VALIDATED send to PHP</h1>");
  $.ajax({
    url: "ContactFormProcess3.php",
    type: "POST",
    data: $('#formEnquiry').serialize(),
    dataType: "json",
    success: function (data) {
      alert("SUCCESS:");
      for (var key in data) {
        $('#msgid').append(key);
        $('#msgid').append('=' + data[key] + '<br />');
      }
    },
    error: function (data) {
      alert("ERROR: ");
      for (var key in data) {
        $('#msgid').append(key);
        $('#msgid').append('=' + data[key] + '<br />');
      }
    }
  });
} else {
  $('#msgid').append('<h1>(Outside Ready) NOT VALIDATED</h1>');
}</code>

불필요한 서버 요청을 피하기 위해 양식 검증 후에만 AJAX 호출이 트리거되는지 확인하십시오.

나열된 추정 JSON 데이터

얻는 출력은 JSON 형식이 아닙니다. 대신 jQuery의 XHR 개체가 인쇄되는 것 같습니다.

잠재적 함정

다음을 확인하세요.

  • PHP 스크립트가 다음과 같은지 확인하세요. 올바른 콘텐츠 유형(Content-Type: application/json)으로 응답합니다.
  • AJAX 호출의 dataType이 "json"으로 설정되어 있는지 확인하세요.
  • 스크립트가 다음에서 성공적으로 실행되고 있는지 확인하세요. 서버이며 PHP는 JSON 출력을 처리하도록 구성되어 있습니다.

위 내용은 PHP가 JSON을 반환하는데도 jQuery의 AJAX 호출이 잘못된 데이터를 수신하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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