php怎么判断是不是ajax请求
墨初 编程开发 985阅读
在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' 协议,也是无法做出判断的,这一点要注意。