可以通过检查http头部信息中的“http_x_requested_with”是否为“xmlhttprequest”来识别ajax请求。如果为“xmlhttprequest”,则为ajax请求;否则,为非ajax请求。
PHP如何判断是Ajax请求
识别Ajax请求
PHP中,可以使用$_SERVER['HTTP_X_REQUESTED_WITH'] 来检查是否为Ajax请求。当请求来自XMLHttpRequest对象(由Ajax调用)时,此头部信息的值为XMLHttpRequest。
判断流程
立即学习“PHP免费学习笔记(深入)”;
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
// 是Ajax请求
} else {
// 不是Ajax请求
}
注意:
- PHP7.3版本起,还可以在$_SERVER数组中使用HTTP_AJAX_REQUEST字段来检查是否为Ajax请求。它的值始终为“true”,无论是否为Ajax请求。
应用场景
判断Ajax请求对于处理异步操作非常有用,例如:
- 验证表单数据
- 更新页面部分内容
- 执行后台任务
代码示例
下面是一个PHP脚本示例,演示如何判断Ajax请求:
<?php if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
// 执行Ajax操作
// ...
} else {
// 不是Ajax请求,重定向到某个页面或显示信息
header('Location: /some-page');
}