关于 x-requested-with 请求头 区分ajax请求还是普通请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 x-requested-with 请求头 区分ajax请求还是普通请求相关的知识,希望对你有一定的参考价值。

  今天做Spring MVC异常统一处理这块,在处理的时候需要区分发送过来的请求是传统请求还是ajax请求,网上有现成的代码,我是参考http://www.2cto.com/kf/201412/364393.html 里面的做法。其中的

if (!( request.getHeader("accept").indexOf("application/json") > -1 || ( request
                    .getHeader("X-Requested-With") != null && request
                    .getHeader("X-Requested-With").indexOf("XMLHttpRequest") > -1 ) ))

段代码是判断请求类型的代码,但是经过反复的测试发现(用goole 、火狐、360浏览器测试)现在的浏览器传统的请求也会发送 X-Requested-With 请求头,所以以上代码判断结果不能真正区分传统请求还是ajax请求。至于如何区分由于本人的能力有限还没想出来(上网查了一下,基本上都是通过以上方法区分的)

以上是关于关于 x-requested-with 请求头 区分ajax请求还是普通请求的主要内容,如果未能解决你的问题,请参考以下文章

PHP如何判断一个请求是不是来源于本域并且是ajax请求?

PHP配置请求头允许跨域拦截OPTIONS请求接收POST请求参数

PHP配置请求头允许跨域拦截OPTIONS请求接收POST请求参数

接口返回302 Found

php options 请求跨域

判断请求是浏览器页面请求还是ajax进入