方法1:后端
当我们使用$_SERVER超全局变量去获取服务器信息的时候,你会发现没有“X-Requested-With”这一项请求头信息,只有当jQuery 发出 ajax 请求时,才会在请求头添加“X-Requested-With”,信息内容为XMLHttpRequest,这时就可以通过$_SERVER["HTTP_X_REQUESTED_WITH"] 去判断是否为Ajax请求了。附上代码,如下:
1 define('IS_AJAX', ((isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'XMLHttpRequest')) ? true : false);
如果是Ajax请求则返回true,否则返回false。
1 var_dump(IS_AJAX);
方法2:前端
下面介绍下前端的判断方法,以此对后端进行区分。代码如下,仅供参考。
1 var xml = new XMLHttpRequest(); 2 xml.open("GET", "demo.php", true); 3 xml.setRequestHeader("X-Requested-With", "XMLHttpRequest"); 4 xml.send();
以上就是如何判断请求为Ajax请求的两种方法。