服务器与网页之间异步,在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)...
在一次做非常复杂的ajax应用时,如果一个会话已经超时,但是此时再通过ajax请求,那么ajax返回的则是一个登陆页面的html,那这下就惨了,页面上而已就乱了,那么,能否在Java端,如拦截器里判断客户的的请求是否是ajax请求呢,经过查询,能.
普通请求与ajax请求的报文头不一样,通过如下
String requestType = request.getHeader("X-Requested-With");
如果requestType能拿到值,并且值为XMLHttpRequest,表示客户端的请求为异步请求,那自然是ajax请求了,反之如果为null,则是普通的请求
在服务器端判断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 异步请求。
服务器与网页之间异步,在服务器端判断request来自Ajax请求(异步)还是传统请求(同步)...相关推荐
- ajax异步查询demo,ASP.NET中AJAX的异步加载(Demo演示)
此次的demo是一个页面,页面上有两行字,然后后面用ajax,使用一个下拉框去替换第一行文字[/code] 第一个是被替换的网页 var xmlhttprequest; function create ...
- 游戏服务器开发的基本体系与服务器端开发的一些建议
刚开始时以为做游戏服务器和做web差不多,但是经过一段时间之后,才发现代码太多,太乱了,一看代码都想重构,都是踩着坑往前走.这里我把一些游戏开发方面的东西整理一下,希望能对那些想做游戏服务器开发的朋友 ...
- 1 游戏服务器开发的基本体系与服务器端开发的一些建议
近年来,我身边的朋友有很多都从web转向了游戏开发.他们以前都没有做过游戏服务器开发,更谈不上什么经验,而从网上找的例子或游戏方面的知识,又是那么的少,那么的零散.当他们进入游戏公司时,显得一脸茫然. ...
- (75)游戏服务器开发的基本体系与服务器端开发的一些建议
转自:http://www.jb51.net/article/119274.htm 侵权删 近年来,我身边的朋友有很多都从web转向了游戏开发.他们以前都没有做过游戏服务器开发,更谈不上什么经验, ...
- 网页上传至服务器失败,网页上传到云服务器失败
网页上传到云服务器失败 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云服务 ...
- 网络知识入门,探讨DNS服务器在网页请求中的作用(二)
上一篇文章讲到网络请求是基于http协议传输的,消息请求包含了"对什么"和"做什么操作",于是一个网页请求就这么发送出去了.但是在发送消息之前,我们还需要对域名 ...
- 进虚拟ftp服务器跳网页,ftp服务器总是自动跳到网页
ftp服务器总是自动跳到网页 内容精选 换一换 ENI负载均衡 ( ENI LoadBalancer )使用弹性负载均衡器直通容器,使部署在容器中的业务时延降低.性能无损耗.ELB实例创建出来后没法更 ...
- 建立一个端口为8189的服务器,它无限期等待直到有客户连接这个端口。若客户在网上发送正确的请求连接了这个端口,则服务器与客户之间就建立了一个可靠的连接。
建立一个端口为8189的服务器,它无限期等待直到有客户连接这个端口.若客户在网上发送正确的请求连接了这个端口,则服务器与客户之间就建立了一个可靠的连接. 一服务器端的程序 (1)class Threa ...
- 微信小程序和H5网页之间有什么区别?
微信小程序和H5网页之间有什么区别 本博主语录:小程序和H5网页的主要开发语言都是 JavaScript ,所以通常小程序的开发会被用来同普通的网页开发来做对比.两者有很大的相似性,对于前端开发者而言 ...
最新文章
- $state 新标签页
- 【Vegas原创】outlook发送时,报550 5.7.1 client does not have permissions to send as this sender解决方法...
- centos7 yum安装 c c++ gcc gcc-c++
- 工业环境老鼠目标检测
- c++结构体定义和使用_[day day go]结构体amp;给结构定义方法
- quick 关于触摸的问题
- 农民丰收节交易英德海奇组委会议-陈业海:功能农业大健康
- 垂直居中及容器内图片垂直居中的CSS解决方法
- mysql数据库(10):数据 备份
- 转帖Masonry介绍与使用实践(快速上手Autolayout)
- L1-014. 简单题-PAT团体程序设计天梯赛GPLT
- 哈希表与区块链的简单介绍
- HTTP API 设计指南(响应部分)
- CentOS 7.4 安装Nginx
- 汇编语言在线视频教程
- 抽象代数之拉格朗日定理的证明
- 水星无线网卡配置AP模式连接无线信号上不了网,怎么办?
- android 行政区域,Android高德之旅(14)行政区划搜索
- 旅游吧!我在这里 ——旅游相册POI搜索:找回你的足迹
- python日历_用python做日历
热门文章
- 浙江省高等学校计算机等级考试有什么用,06秋年秋浙江省高等学校计算机等级考试试卷(三级数据库技术及应用)...
- QString与中文问题
- Ubuntu中用gedit保存文件失败的解决办法
- Iterator模式
- linux eclipse 头文件路径,Eclipse CDT标准库头文件设置
- 用计算机MR,计算机上的【MC、MR、M
- listview刷新_Flutter NestedScrollView 滑动折叠头部下拉刷新效果
- LSGO软件技术团队2015~2016学年第七周(1012~1018)总结
- 【转】2.2【MySQL】运行原理(二):InnoDB 内存结构、磁盘结构及update sql执行过程分析
- 【转】3.4(译)构建Async同步基元,Part 4 AsyncBarrier