日期:2014-05-16  浏览次数:20502 次

jquery easyui 异步提交,每次拦截请求类型都不是X-Requested-With
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";
}
}