How to find out if a request is an ajax request?(如何判断一个请求是否是ajax请求?)
问题描述
我尝试确定对 PHP 文件的请求是否由 ajax 发送.
我在谷歌上搜索并阅读了一大堆建议使用以下方法的文章:
I googled it and read a whole a bunch of articles that suggest following method:
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
echo 'This is an ajax request!';
exit;
}
echo 'This is not an ajax request!';
但是我的服务器没有这个变量:未定义索引:HTTP_X_REQUESTED_WITH ...
But my server doesn't have this variable: Undefined index: HTTP_X_REQUESTED_WITH ...
这就是我发出ajax请求的方式:
Thats how I make the ajax request:
$.ajax({
url: 'http://URL/test.php',
complete: function(res) {
console.log(res.responseText);
}
});
我是从不同的 url 进行调用,所以我设置了 header('Access-Control-Allow-Origin: *');
I'm making that call from a different url, so I've set header('Access-Control-Allow-Origin: *');
不过,我发现了 $_SERVER
的一个不同之处:
I have discovered one difference in $_SERVER
though:
Ajax 请求:$_SERVER[HTTP_ACCEPT] =>*/*
无 Ajax 请求:$_SERVER[HTTP_ACCEPT] =>text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
所以我的问题是,有没有办法让我将 HTTP_X_REQUESTED_WITH
放入 $_SERVER
中?如果不是,是否有一种正确的方法可以通过使用 $_SERVER[HTTP_ACCEPT]
So my question is, is there a way for me to get HTTP_X_REQUESTED_WITH
into $_SERVER
?
And if not, is there a proper way to find out if the request is AJAX by using the $_SERVER[HTTP_ACCEPT]
推荐答案
没有 100% 的方法来检测请求是否是通过 ajax 发出的.即使有人发送带有X-Requested-With: XMLHttpRequest"的标头,您也不应该依赖它.
There's no 100% way to detect if the request was made via ajax. Even if someone sends header with "X-Requested-With: XMLHttpRequest" you shouldn't rely on it.
这篇关于如何判断一个请求是否是ajax请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何判断一个请求是否是ajax请求?
基础教程推荐
- HTTP 与 FTP 上传 2021-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 使用 PDO 转义列名 2021-01-01