php怎么判断是不是ajax请求
墨初 编程开发 581阅读
在php脚本中,可以通过判断 $_SERVER["HTTP_X_REQUESTED_WITH"] 是否存在以及其值的类型,来判断数据是不是通过 js ajax方法来提交的,这对php的安全性是很有帮助的。
php 判断是否ajax提交的方法
当 $_SERVER["HTTP_X_REQUESTED_WITH"] 存在并且其值为"xmlhttprequest"时,可认为数据是通过ajax提交的。
例1:
//73so.com if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) == 'xmlhttprequest'){ echo '是ajax的请求!'; }else{ echo '不是ajax的请求'; }
例2:
/** * @name 判断是否为 ajax 提交 * * @return bool * @host 73so.com */ function isAjax() { return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'; }
PS:如果ajax是跨域提交的数据,php通过上面的方法是无法来判断是否为ajax提交的。即使在提交时,html头中包含了'HTTP_X_REQUESTED_WITH' 协议,也是无法做出判断的,这一点要注意。