PHP判断是否为AJAX、POST、GET请求

      发布在:前端技术      评论:0 条评论

Jquery发送的ajax请求

jquery会在请求头加一个 X-Requested-With 信息,信息内容为XMLHttpRequest,这样php可以使用$_SERVER这个全局数组来判别是否为ajax请求.

在jquery框架中,对于通过它的$.ajax, $.get, or $.post方法请求网页内容时,它会向服务器传递一个HTTP_X_REQUESTED_WITH的参数,你可以利用如下方法判断某个请求是ajax请求还是普通请求: 

//是否是AJAX提交
function isAjax(){
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
return true;
}else{
return false;
}
}
//是否是GET提交
function isGet(){
return $_SERVER['REQUEST_METHOD'] == 'GET' ? true : false;
}
//是否是POST提交
function isPost(){
return ($_SERVER['REQUEST_METHOD'] == 'POST' && checkurlHash($GLOBALS['verify'])
&&(empty($_SERVER['HTTP_REFERER']) || preg_replace("~https?:\/\/([^\:\/]+).*~i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("~([^\:]+).*~", "\\1", $_SERVER['HTTP_HOST']))) ? 1 : 0;
}

原生js发起的ajax请求

需要自己添加请求头信息,这样才可以在后台进行判断 
前端添加请求头的代码为:

var xmlhttp = new XMLHttpRequest();
xmlhttp .open("GET","test .php",true) ;
xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest");
xmlhttp.send():



相关文章
热门推荐