php - 在 PHP 中检测 Ajax

标签 php jquery ajax forms authentication

我正在尝试将 ajax 发布到同一个 php 页面。

Ajax :

$("#loginForm").submit(function(e) {
    e.preventDefault();
    var postData = $(this).serialize();
    $.post("login.php", postData);
});

postData 是正确的,格式如下:

username=john&password=123123

PHP(同一页面):

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
      echo 'Ajax Request Detected';
}

然而,这个 if-check 总是返回 false 并且 echo 行永远不会被执行。我在这里做错了什么?

最佳答案

这是在 php 中检测 ajax 请求的正确方法:

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) {
    // this is ajax request, do something
}

关于php - 在 PHP 中检测 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19794859/

相关文章:

php - 如何获取请求 Tor 网页的客户端 IP?

javascript - 在 IE7 中使用 jquery slideToggle 时内容消失

javascript - 设置间隔内的设置间隔

javascript - 将 JSON 数据发布到服务器 URL

jquery - jquery ajax 成功后 $(this) 不起作用

php 聊天占用大量内存! Jquery、PHP 和 MySQL

php - 无法连接到 "localhost"端口 25 的邮件服务器

php - mysql 选择空值查询

javascript - 单击关闭时保持 Bootstrap 下拉菜单打开

javascript - WordPress 中关于 AJAX 调用的重复帖子