本人在做一个登录页面用到了需要判断是否为ajax请求,百度了看看答案都是一样
- String requestType = request.getHeader(“X-Requested-With”);
- 如果 requestType 为 null,则为同步请求。
- 如果 requestType 为 XMLHttpRequest 则为
Ajax 请求。( x-requested-with XMLHttpRequest //表明是AJax异步)
但是我这样写发现ajax请求也是为null,又继续百度半天,看到说跨域的ajax没有这个X-Requested-With请求头,也没找到解决方法。
然后自己想一下,就自己对比了请求头,果然还是发现解决了问题
先来看看普通请求头
注意accept里,我们再看看ajax的请求头
对比发现还是accept里不同,于是就写下判断代码
String accept=req.getHeader("Accept");
System.out.println(accept);
if (accept.contains("application/json, text/javascript")) {
System.out.println("ajax");
}else {
System.out.println("no ajax");
}
当我们ajax访问时
当不是ajax访问时
这样就成功解决跨域判断是否ajax访问的问题,
当然有可能不同的网页,请求头不一样,可以同样的方法找出不同,再判断。
以上就是本次问题解决,特此记录一下。