jquery easyui 异步提交,每次拦截请求类型都不是X-Requested-With
JQueryeasyUI1.3.2,JQuery1.8.0
要进行session是否过期验证,用了2种方式:1、ajax请求,就返回json2、普通http请求,直接返回登录页。
但是,每次拦截器获取的类型都是"普通http请求"。在页面我是用的esayUI提供的form提交,默认是ajax方式啊。怎么回事???麻烦各位老师帮我看看
页面:
<form>省略.......</form>
//修改密码
functionserverLogin(){
$('#chpwd').form('submit',{
url:"updatePwd.action",
onSubmit:function(){
return$(this).form('validate');
},
success:function(jsonData){
vardata=eval('('+jsonData+')');
if(data.success){
$.messager.alert("修改成功",data.message);
}
if(data.success==false){
$.messager.alert("修改失败",data.message);
}
}
});
}
拦截器:
@Override
publicStringintercept(ActionInvocationinvocation)throwsException{
/**
*拦截器
*/
HttpServletRequestrequest=ServletActionContext.getRequest();
HttpServletResponseresponse=ServletActionContext.getResponse();
StringreqType=request.getHeader("X-Requested-With");//获取请求类型
System.out.println("requesttype:==============="+reqType);
Map<String,Object>session=ActionContext.getContext()
.getSession();
StringsessionInfo=(String)session.get("sessionInfo");//获取设置的session信息
if(null==sessionInfo){
//ajax请求
if("XMLHttpRequest".equals(reqType)){
System.out.println("======================ajax");
PrintWriterpw=response.getWriter();
pw.print("sessionOut");//返回字符串"sessionOut"
pw.flush();
pw.close();
returnnull;
}
//普通请求
else{
System.out.println("======================http");
return"loginout";
}
}