判断是POST/GET请求+判断是AJAX请求

1.判断是POST/GET请求
这个大家都知道了,就是$_SERVER['REQUEST_METHOD']
返回用户的请求方式; i.e. 'GET', 'HEAD', 'POST', 'PUT'.
eg:
4f0b74e3-df78-3cfc-98e1-eed7e5e9e440.png
2.判断是AJAX请求
框架中频繁用到:$_SERVER['HTTP_X_REQUESTED_WITH']来判断是否Ajax提交.  其实$_SERVER数组中无HTTP_X_REQUESTED_WITH变量,其实是利用XmlHttpRequest的setRequestHeader方法设置的。
2530b1ac-3d88-3e66-9819-28f2be7fba7f.png
在Jquery的源码中
8fadb360-a465-3793-9710-4437df0aa3dd.png
然后
判断是POST/GET请求+判断是AJAX请求_第1张图片
setRequestHeader("XX","YY");服务器端就可通过isset($_SERVER['HTTP_XX'])这个变量是否存在来判断是否来着Ajax请求,其中XX、YY都是任意字符,但服务器端必须加HTTP_前置取值。
还有setRequestHeader里边的字符串不限制大小写,但$_SERVER['HTTP_XX'])中的XX必须大写才可。

如果你用了jquery框架,恭喜你,对于通过它的$.ajax, $.get, or $.post方法请求网页内容时,jquery框架会向服务器传递一个HTTP_X_REQUESTED_WITH的参数,我们不必自己setRequestHeader,你可以利用如下方法判断某个请 求是ajax请求还是普通请求:
if(isset($_SERVER['HTTP_X_REQUESTED_WITH'])&&strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') 
{ ..这是一个ajax请求,然后... } 
else 
{ ..这不是一个ajax请求,然后... } 




  • 判断是POST/GET请求+判断是AJAX请求_第2张图片
  • 大小: 8 KB
  • 判断是POST/GET请求+判断是AJAX请求_第3张图片
  • 大小: 8.7 KB
  • 判断是POST/GET请求+判断是AJAX请求_第4张图片
  • 大小: 3.3 KB
  • 判断是POST/GET请求+判断是AJAX请求_第5张图片
  • 大小: 3.5 KB
  • 查看图片附件

你可能感兴趣的:(判断是POST/GET请求+判断是AJAX请求)