首頁 >後端開發 >php教程 >為什麼即使 PHP 回傳 JSON,jQuery 的 AJAX 呼叫也會收到不正確的資料?

為什麼即使 PHP 回傳 JSON,jQuery 的 AJAX 呼叫也會收到不正確的資料?

Patricia Arquette
Patricia Arquette原創
2024-10-31 20:55:17893瀏覽

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

PHP 將JSON 返回jQuery AJAX 呼叫

儘管您努力透過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>

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 呼叫:

確保您的AJAX 調用僅在表單驗證後調用僅在表單驗證後調用僅在表單驗證後調用僅在表單驗證後調用僅在表單驗證後調用僅在表單驗證後調用僅在表單驗證後調用僅在表單驗證後調用僅在表單驗證後調用僅在表單驗證後調用觸發,以避免不必要的伺服器請求。

列出的假定 JSON 資料

您獲得的輸出不是 JSON 格式。似乎正在列印 jQuery 的 XHR 物件。

潛在陷阱

    驗證以下內容:
  • 確保您的PHP 腳本是使用正確的內容類型來回應(內容類型: application/json)。
  • 確保 AJAX 呼叫的 dataType 設定為「json」。
檢查腳本是否在伺服器,且 PHP 配置為處理 JSON 輸出。

以上是為什麼即使 PHP 回傳 JSON,jQuery 的 AJAX 呼叫也會收到不正確的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn