php检测ajax方式的调用请求

来源:互联网 发布:centos 6.6 snmp 编辑:程序博客网 时间:2024/06/09 18:53

比如要给用户报告一个错误,用下面的方法:
使用set_error_handler设置自己的错误处理函数,在报错的地方使用trigger_error,在自定义的错误处理函数中给用户显示一个出错信息页面。

但是如果调用trigger_error的这个页面是被一次ajax请求触发的,那么ajax返回后将得到一大堆用于显示错误的html代码。而一般ajax调用都会约定自己的错误信息格式,所以后台php代码要么使用两种不同的报告错误的方式:一种给ajax调用请求使用,一种给普通的页面刷新使用,要么使用统一的错误报告格式,在报告的时候判断一下这是一个ajax调用请求还是一个普通的页面刷新请求。

在php代码中检测是否ajax调用请求的方法是:
    if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
            strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
                 // this is an ajax request
    }
这个方法来自于google搜索,据说只适用于jQuery发出的ajax请求。

原创粉丝点击