PHP 不发送 AJAX 调用的响应文本

标签 php jquery ajax

我一生都无法解决这个问题,希望我没有做一些愚蠢的事情,但我不清楚为什么这不起作用。

我有一个带有 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 扩展在控制台中得到的响应:

Console Screenshot

大家有什么想法吗?

最佳答案

您需要从 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/

相关文章:

php - 取多维数组的第一层

php - 如何使用 PHP GD 放大图像?

php - 在 phpspec 中测试多个方法的调用

javascript - jQuery 在多个元素上调用函数的更好方法?

php - 查询 MySQL 表返回 JSON

javascript - 使用 jquery 从一列拖放到另一列

javascript - 在 "resizestart"事件中计算 jQuery UI 可调整大小的最小和最大宽度

php - 不使用HTTPS登录,如何安全?

javascript - 显示评论而不刷新

javascript - 如何通过添加按钮动态添加选择框,然后通过php将值保存在mysql中