jquery easyui 异步提交,每次拦截请求类型都不是ajax

xinjibaxin0 2014-05-07 10:43:53
JQuery easyUI 1.3.2, JQuery 1.8.0

要进行session是否过期验证,用了2种方式:1、ajax请求,就返回json 2、普通http请求,直接返回登录页。
但是,每次拦截器获取的类型都是"普通http请求"。 在页面我是用的esayUI提供的form提交,默认是ajax方式啊。 怎么回事??? 麻烦各位老师帮我看看


页面:

<form>省略.......</form>

//修改密码
function serverLogin() {
$('#chpwd').form('submit',{
url:"updatePwd.action",
onSubmit: function() {
return $(this).form('validate');
},
success:function(jsonData){
var data = eval('(' + jsonData + ')');
if(data.success) {
$.messager.alert("修改成功",data.message);
}
if(data.success == false) {
$.messager.alert("修改失败",data.message);
}
}
});
}

拦截器:
@Override
public String intercept(ActionInvocation invocation) throws Exception {

/**
* 拦截器
*/
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
String reqType = request.getHeader("X-Requested-With");//获取请求类型

System.out.println("request type:==============="+reqType);

Map<String, Object> session = ActionContext.getContext()
.getSession();
String sessionInfo = (String)session.get("sessionInfo");//获取设置的session信息

if(null == sessionInfo) {
//ajax请求
if("XMLHttpRequest".equals(reqType) ) {
System.out.println("======================ajax");
PrintWriter pw = response.getWriter();
pw.print("sessionOut");//返回字符串"sessionOut"
pw.flush();
pw.close();
return null;
}
//普通请求
else {
System.out.println("======================http");
return "loginout";
}
}
...全文
418 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_16412075 2016-03-28
  • 打赏
  • 举报
回复
楼主解决了吗,我现在也遇到这个问题了。。。
星哥2013 2014-05-07
  • 打赏
  • 举报
回复
引用 3 楼 longtian1213 的回复:
那你打开firebug或者输出头部信息,看看头部中有没有这个,或者是改成其他的了!
去firebug看了,没有X-Requested-With, 难道是jquery1.8.0默认不加入这个了还是怎么的?
S117 2014-05-07
  • 打赏
  • 举报
回复
那你打开firebug或者输出头部信息,看看头部中有没有这个,或者是改成其他的了!
星哥2013 2014-05-07
  • 打赏
  • 举报
回复
引用 1 楼 longtian1213 的回复:
你那个reqType不靠谱吧! 在form中加个隐藏字段,表示ajax提交的,然后再拦截器中取这个字段判断下!
String reqType = request.getHeader("X-Requested-With"); 我在网上搜了下,说jquery 异步提交的头信息里加入了这个X-Requested-With。
S117 2014-05-07
  • 打赏
  • 举报
回复
你那个reqType不靠谱吧! 在form中加个隐藏字段,表示ajax提交的,然后再拦截器中取这个字段判断下!
loveunittesting 2014-05-07
  • 打赏
  • 举报
回复
还是试一试,直接使用$.ajax。也别引用easyui的js进行实验,千万别是easyui对ajax进行了什么改动
星哥2013 2014-05-07
  • 打赏
  • 举报
回复
引用 10 楼 yys79 的回复:
header x-requested-with的值应该是XMLHttpRequest才对。如果直接使用$.ajax、$.post这种方式 x-requested-with是什么值呢?
我还未使用$.ajax、$.post这种方式
loveunittesting 2014-05-07
  • 打赏
  • 举报
回复
header x-requested-with的值应该是XMLHttpRequest才对。如果直接使用$.ajax、$.post这种方式 x-requested-with是什么值呢?
星哥2013 2014-05-07
  • 打赏
  • 举报
回复
引用 8 楼 yys79 的回复:
x-requested-with 我用这个,小些的,那个X-Requested-With收到的值是个啥?
小写的我也改来试了,还是一样, 获取的“X-Requested-With” 是null
loveunittesting 2014-05-07
  • 打赏
  • 举报
回复
x-requested-with 我用这个,小些的,那个X-Requested-With收到的值是个啥?
星哥2013 2014-05-07
  • 打赏
  • 举报
回复
没人来帮忙啊?
星哥2013 2014-05-07
  • 打赏
  • 举报
回复
引用 5 楼 yys79 的回复:
这种应该是不算ajax的
我看了jquery easyUI的API文档的, 说了是ajax提交的。
loveunittesting 2014-05-07
  • 打赏
  • 举报
回复
这种应该是不算ajax的

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧