- 浏览: 624432 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (819)
- java开发 (110)
- 数据库 (56)
- javascript (30)
- 生活、哲理 (17)
- jquery (36)
- 杂谈 (15)
- linux (62)
- spring (52)
- kafka (11)
- http协议 (22)
- 架构 (18)
- ZooKeeper (18)
- eclipse (13)
- ngork (2)
- dubbo框架 (6)
- Mybatis (9)
- 缓存 (28)
- maven (20)
- MongoDB (3)
- 设计模式 (3)
- shiro (10)
- taokeeper (1)
- 锁和多线程 (3)
- Tomcat7集群 (12)
- Nginx (34)
- nodejs (1)
- MDC (1)
- Netty (7)
- solr (15)
- JSON (8)
- rabbitmq (32)
- disconf (7)
- PowerDesigne (0)
- Spring Boot (31)
- 日志系统 (6)
- erlang (2)
- Swagger (3)
- 测试工具 (3)
- docker (17)
- ELK (2)
- TCC分布式事务 (2)
- marathon (12)
- phpMyAdmin (12)
- git (3)
- Atomix (1)
- Calico (1)
- Lua (7)
- 泛解析 (2)
- OpenResty (2)
- spring mvc (19)
- 前端 (3)
- spring cloud (15)
- Netflix (1)
- zipkin (3)
- JVM 内存模型 (5)
- websocket (1)
- Eureka (4)
- apollo (2)
- idea (2)
- go (1)
- 业务 (0)
- idea开发工具 (1)
最新评论
-
sichunli_030:
对于频繁调用的话,建议采用连接池机制
配置TOMCAT及httpClient的keepalive以高效利用长连接 -
11想念99不见:
你好,我看不太懂。假如我的项目中会频繁调用rest接口,是要用 ...
配置TOMCAT及httpClient的keepalive以高效利用长连接
很多用到AJAX请求,如何区别一个请求是传统的HTTP请求?还是Ajax请求?网上有很多,这里记录一下,方便以后直接查看,懒人计划,
关键是看http请求头(header)信息中的 x-requested-with 信息项是否有无,如果无该头信息项,取出的是未定义的值,即null,则说明是传统请求;如果存在该头信息项,值是XMLHttpRequest 则说明是Ajax请求;
在JAVA WEB项目,比如在Server端的JSP中判断如下:
转自:http://blog.csdn.net/shenzhennba/article/details/9235373
转自:http://bbs.csdn.net/topics/370168085
关键是看http请求头(header)信息中的 x-requested-with 信息项是否有无,如果无该头信息项,取出的是未定义的值,即null,则说明是传统请求;如果存在该头信息项,值是XMLHttpRequest 则说明是Ajax请求;
在JAVA WEB项目,比如在Server端的JSP中判断如下:
if (request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) { out.print("该请求是 AJAX 异步HTTP请求。"); }else{ out.print("该请求是传统的 同步HTTP请求。"); }
转自:http://blog.csdn.net/shenzhennba/article/details/9235373
引用
在服务器端判断request来自Ajax请求(异步)还是传统请求(同步):
两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数
1、传统同步请求参数
accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-charset gb2312,utf-8;q=0.7,*;q=0.7
accept-encoding gzip,deflate
accept-language zh-cn,zh;q=0.5
cache-control max-age=0
connection keep-alive
cookie JSESSIONID=1A3BED3F593EA9747C9FDA16D309AF6B
host 192.168.101.72:8080
keep-alive 300
referer http://192.168.101.72:8080/htfsweb/spring_security_login
user-agent Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)
2、Ajax 异步请求方式
accept */*
accept-language zh-cn
referer http://192.168.101.72:8080/scm/?token=3b194bff23bf6acecea5661ac8e14c51
x-requested-with XMLHttpRequest
content-type application/x-www-form-urlencoded,text/javascript
accept-encoding gzip, deflate
user-agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; QQDownload 598; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1)
host 192.168.101.72:8080
content-length 233
connection Keep-Alive
cache-control no-cache
cookie CSS=undefined; JSESSIONID=1B9AC25036290F7FB6823CCE1A24E541
可以看到 Ajax 请求多了个 x-requested-with ,可以利用它,request.getHeader("x-requested-with"); 为 null,则为传统同步请求,为 XMLHttpRequest,则为 Ajax 异步请求。
两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数
1、传统同步请求参数
accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-charset gb2312,utf-8;q=0.7,*;q=0.7
accept-encoding gzip,deflate
accept-language zh-cn,zh;q=0.5
cache-control max-age=0
connection keep-alive
cookie JSESSIONID=1A3BED3F593EA9747C9FDA16D309AF6B
host 192.168.101.72:8080
keep-alive 300
referer http://192.168.101.72:8080/htfsweb/spring_security_login
user-agent Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)
2、Ajax 异步请求方式
accept */*
accept-language zh-cn
referer http://192.168.101.72:8080/scm/?token=3b194bff23bf6acecea5661ac8e14c51
x-requested-with XMLHttpRequest
content-type application/x-www-form-urlencoded,text/javascript
accept-encoding gzip, deflate
user-agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; QQDownload 598; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1)
host 192.168.101.72:8080
content-length 233
connection Keep-Alive
cache-control no-cache
cookie CSS=undefined; JSESSIONID=1B9AC25036290F7FB6823CCE1A24E541
可以看到 Ajax 请求多了个 x-requested-with ,可以利用它,request.getHeader("x-requested-with"); 为 null,则为传统同步请求,为 XMLHttpRequest,则为 Ajax 异步请求。
引用
x-requested-with XMLHttpRequest是Ajax 异步请求方式
使用
request.getHeader("x-requested-with");
为 null,则为传统同步请求;
为 XMLHttpRequest,则为 Ajax 异步请求。
使用
request.getHeader("x-requested-with");
为 null,则为传统同步请求;
为 XMLHttpRequest,则为 Ajax 异步请求。
转自:http://bbs.csdn.net/topics/370168085
发表评论
-
解决 CSDN 登录后才能复制的功能
2022-01-10 18:02 1032javascript:document.body.conten ... -
Flutter和RN对比
2021-10-22 11:33 399Flutter和RN对比 Flutter介绍和主流框架的对比 ... -
window.opener引用为null的解决办法
2021-03-14 14:15 2061http://www.bubuko.com/infodetai ... -
layui select下拉框改变之 change 监听事件
2019-04-10 10:21 893https://blog.csdn.net/weixin_36 ... -
如何和何时使用CSS的!important
2019-04-09 20:45 356https://www.w3cplus.com/css/the ... -
<iframe>标签自适应高度和宽度
2018-04-22 13:06 386引用 <iframe src="index.h ... -
jMessageBox
2017-04-23 16:35 393http://www.thinksaas.cn/topics/ ... -
ajax跨域访问
2017-03-13 07:29 575No 'Access-Control-Allow-Origin ... -
完美Email验证正则表达式
2016-10-12 10:17 833际域名格式如下: 域名由各国文字的特定字符集、英文字母、数字 ... -
browserWindows.js
2016-10-10 09:28 118/****************************** ... -
KO框架
2016-09-19 08:54 982http://knockoutjs.com/documenta ... -
js如何监听用户的刷新操作
2016-08-04 11:18 971只监听用户用F5刷新 检测F5的keypress keydow ... -
js两种定义函数、继承方式及区别
2016-07-12 10:11 500一:js两种定义函数的方式及区别 1:函数声明: funct ... -
表单校验组件ValidForm 一
2016-07-06 09:43 174810.表单校验组件ValidForm 10.1使用入门 1、引 ... -
表单校验组件ValidForm 二
2016-07-06 09:38 118210.4Validform对象[方法支 ... -
JS中的!=、== 、!==、===的用法和区别
2016-07-06 08:59 372var num = 1; var str = '1'; ... -
javascript记住用户名和登录密码(两种方式)
2016-07-06 08:53 3249下面主要通过代码给大 ... -
window.returnValue的用法
2016-07-04 10:27 467returnValue是javascript中html的win ... -
深入学习JavaScript: apply 方法 详解(转)——非常好
2016-07-04 10:03 347我在一开始看到javascript的函数apply和call时 ... -
正则表达式验证中文
2016-06-13 15:24 810在实际开发过程中,我们可能经常会遇到需要判断一个字符是否是汉字 ...
相关推荐
X-Requested-With常用于判断是不是ajax请求 但是有时我们会有需要删除X-Requested-With的情况 下面介绍一种方式 js代码 代码如下: $.ajax({ url: ‘http://www.zhangruifeng.com’, beforeSend: function( xhr ) { ...
### 服务器端判断Ajax请求 在现代Web开发中,异步JavaScript与XML(Ajax)技术...通过分析HTTP请求头,特别是`X-Requested-With`标头,我们可以轻松地识别出Ajax请求。此外,还可以结合其他请求头来进行更细致的分析。
`$_SERVER['HTTP_X_REQUESTED_WITH']` 是一个在 PHP 中常见的用来识别 AJAX(Asynchronous JavaScript and XML)请求的变量。然而,很多人对这个变量的理解并不深入,常常将其误认为是 PHP 内置的自定义变量,而实际...
- **如何区分Ajax请求**:可以通过检查HTTP请求头部中的`X-Requested-With`字段来判断一个请求是否为Ajax请求。当该字段存在且值为`XMLHttpRequest`时,可以认为这是一个Ajax请求。 - **如何处理Ajax请求**:我们...
此外,开发者也可以在自定义的Ajax请求中设置其他值,或者完全不使用`X-Requested-With`头部信息,因此依赖这个头部属性来判断是否是Ajax请求并不是绝对可靠的。 如果要检查请求头中是否有某个特定属性,我们可以在...
这个方法可能需要根据所使用的 Web 框架来实现,例如在 jQuery 中,可以通过检查请求头中的 `X-Requested-With` 是否为 `XMLHttpRequest` 来识别。 3. **处理无权限访问**: 当 `onAccessDenied()` 被调用时,如果...
通常,这可以通过配置`HttpSecurity`对象来实现,添加对X-Requested-With头的支持,这是一个常见的标记Ajax请求的头信息。 ```java http.authorizeRequests() .antMatchers("/ajax/**").permitAll() // 允许所有...
总结一下,PHP中判断Ajax请求的关键在于检查`$_SERVER["HTTP_X_REQUESTED_WITH"]`变量,而这个变量通常是前端通过设置`X-Requested-With`头信息来传递的。通过这种方式,前端和后端可以协同工作,提供流畅的异步体验...
在示例代码中,使用了`request.getHeader("X-Requested-With")`来获取请求头中的`X-Requested-With`字段,该字段在大多数现代浏览器的Ajax请求中会被设置为`XMLHttpRequest`。如果这个值匹配,那么可以确定这是一个...
受到很多模版代码的影响,大家都以为php有这样一个自定义变量:$_SERVER[‘HTTP_X_REQUESTED_WITH’]. 其实根本不是那么回事. $_SERVER是一个包含诸如头信息(header),路径(path)和脚本位置(script locations)的数组.这...
Access-Control-Allow-Headers: X-Requested-With ``` ### 3. jQuery的Ajax跨域 jQuery库提供了方便的API来处理Ajax请求,包括跨域。使用`$.ajax()`或`$.getJSON()`,设置`jsonp`参数为回调函数名,可以实现JSONP...
1. **请求头部识别**:检查`X-Requested-With`头部,这个头部通常在AJAX请求中设置为`XMLHttpRequest`,用来标识请求是否来自AJAX。 2. **状态代码和响应头**:确保正确设置HTTP状态代码和响应头,以便客户端能够...
add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; if ($request_method = 'OPTIONS') { add_header '...
在JavaScript中,使用`$.ajax`或者`fetch`等方法发送异步请求时,服务器会根据请求头中的`X-Requested-With`字段来判断是否为AJAX请求。如果设置了`ajax=1`,或者在请求头中设置了`X-Requested-With: XMLHttpRequest...
在这个例子中,我们首先检查请求头`x-requested-with`来判断是否为AJAX请求。如果用户会话有效,我们允许请求继续传递到下一个过滤器或目标资源。反之,如果会话过期,我们将对AJAX请求返回一个包含特定标识(如`no...
关键在于检查HTTP请求头中的`X-Requested-With`字段。这个字段在AJAX请求中会被设置为`XMLHttpRequest`,表明这是一个异步请求。因此,我们可以在服务器端的拦截器(如Struts2的Interceptor)中检查这个字段,以此来...
jRaiser 1.3.4 wath's new: 在$.util.parseTpl中添加容错处理,当模板为null时返回undefined,当values为空时返回模板内容。 优化了各种样式操作。... 在$.ajax.send的Ajax请求中增加X-Requested-With的header。
这里,我们检查了`x-requested-with`头,这是许多库(如jQuery)在发送Ajax请求时会设置的一个标识。如果发现这是一个Ajax请求,我们就设置响应头`sessionstatus`为"timeout",而不是执行重定向。 接下来是前端...