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>
注意包含 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 返回 JSON,jQuery 的 AJAX 调用也会收到不正确的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!