目录

ajax请求后端,session失效后的请

目录

ajax请求后端,session失效后的请…

项目中前后端分离,后端拦截机制

每次前端请求遇到后端重启服务器时(代码测试时),因为session的销毁导致后端接口被拦截。但前端统一显示ajax error里面的信息。不能正确判断异常原因,所以经过修改,将拦截后的错误信息返回给前端,有了较好的信息交互。

1,前端请求

function selectPower(){

var str=$.cookie(‘obj’);

var urlg2=$.cookie(‘urlg’);

var user=jQuery.parseJSON(str);

$ .ajax({

url : urlg2 + “/*****?dd=” +user.dd,

type : “POST”,

dataType : “json”,

async:false,

xhrFields: {

withCredentials: true

},

success : function(data) {

//判断返回状态信息

;

。。。。

},

error : function(e) {

;

}

});

}

2,后端拦截器

@Override

public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {

String requestUri = arg0.getRequestURI();

for (String url : excludedUrls) {

if (requestUri.endsWith(url)) {

return true;

}

}

HttpSession session = arg0.getSession();

if (session.getAttribute(“user”) == null) {

arg0.getRequestDispatcher("/tbuser/noUser").forward(arg0, arg1);

return false;

} else {

return true;

}

}

// arg0.getRequestDispatcher("/tbuser/noUser").forward(arg0, arg1); 请求的转发 替换被拦截的请求和响应。可以将nouser中的响应内容响应回前端ajax中。

@ResponseBody

@RequestMapping(value = “noUser”, method = RequestMethod.POST)

public JsonResult noUser() {

return new JsonResult(true, “noUser”, “未登录”, null);

}

拦截器mvc中的配置

/tbuser/noUser

/tbuser/login

/swagger-ui.html