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

1.判断是POST/GET请求
这个大家都知道了,就是$_SERVER['REQUEST_METHOD']
返回用户的请求方式; i.e. 'GET', 'HEAD', 'POST', 'PUT'.
eg:
[img]http://dl.iteye.com/upload/attachment/0074/8245/4f0b74e3-df78-3cfc-98e1-eed7e5e9e440.png[/img]
2.判断是AJAX请求
框架中频繁用到:$_SERVER['HTTP_X_REQUESTED_WITH']来判断是否Ajax提交. 其实$_SERVER数组中无HTTP_X_REQUESTED_WITH变量,其实是利用XmlHttpRequest的setRequestHeader方法设置的。
[img]http://dl.iteye.com/upload/attachment/0074/8247/2530b1ac-3d88-3e66-9819-28f2be7fba7f.png[/img]
在Jquery的源码中
[img]http://dl.iteye.com/upload/attachment/0074/8249/8fadb360-a465-3793-9710-4437df0aa3dd.png[/img]
然后
[img]http://dl.iteye.com/upload/attachment/0074/8252/8a8d2248-6c5e-3f36-841e-ab906cdedfff.png[/img]
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请求,然后... }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值