我一生都无法解决这个问题,希望我没有做一些愚蠢的事情,但我不清楚为什么这不起作用。
我有一个带有 JQuery 脚本的基本 HTML 页面,该脚本将以下 AJAX 调用发送到同一目录中的 PHP 脚本。
JQuery:
// Sends the AJAX request
$.ajax({
type: "GET",
url: "process.php",
dataType: "json",
success: function(data) {
console.log(data);
}
});
PHP:
<!-- Ajax request handler -->
<?php
echo json_encode(array('message' => 'AJAX call received'));
exit();
?>
AJAX 调用已成功进行,在控制台中调试后,其状态代码为 200,statusText 为“ok”。但是,我根本无法让返回的 JSON 消息按其应有的方式显示在控制台中。
我已经仔细检查了 URL,没问题。
这是我使用 Jeff Hatz 的 AJAX 调试器 Chrome 扩展在控制台中得到的响应:
大家有什么想法吗?
最佳答案
您需要从 PHP 顶部删除此行:
<!-- Ajax request handler -->
当您使用 dataType: 'json'
进行 ajax 调用时,它根本不会解析响应,然后当您执行 console.log(data) 时;
它只是空的,没有控制台日志。
当您删除该行时,您应该在“网络”选项卡中收到响应:
{"message":"AJAX call received"}
然后在 console.log(data);
中您应该看到:
Object {message: "AJAX call received"}
关于PHP 不发送 AJAX 调用的响应文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52079404/