登录失效后ajax访问后台问题解决
2017-09-06 12:51
295 查看
由于后台加入了权限管理,登录失效后访问后台会发生重定向,而ajax访问的无法跳转到登录页面。
1.通过在权限管理器中加入判断是否是ajax访问来区分两种请求。
2.修改jquery ajax源码 当获取到返回参数是json格式,并且code值为not_login的时候自动刷新页面,刷新页面后是否执行登录操作由后台处理。
jquery代码添加位置 (以jquery 2.1.4为例) 第8210行 if 判断内
// Get response data
if ( responses ) {
1.通过在权限管理器中加入判断是否是ajax访问来区分两种请求。
//ajax请求方式会获取到 XMLHttpRequest ,其他请求方式没有这个请求头 String requestType = request.getHeader("X-Requested-With"); if(StringUtil.isNotEmpty(requestType) && "XMLHttpRequest".equals(requestType)) { String jsonStr = "{\"code\":\"not_login\",\"msg\":\"没有登录\"}"; UtilUrl.setJsonResponse(response, jsonStr); }else { request.setAttribute("referer", url); request.getRequestDispatcher("/jsp/user/login.jsp").forward(request, response); }
/** * 设置json返回数据 * @param request * @return */ public static void setJsonResponse(HttpServletResponse response, String jsonStr){ response.setCharacterEncoding("UTF-8"); response.setContentType("application/json; charset=utf-8"); PrintWriter out = null; try { out = response.getWriter(); out.append(jsonStr); } catch (Exception e) { log.error("设置json返回数据失败:"+e.getMessage()); } finally { if (out != null) { out.close(); } } }
2.修改jquery ajax源码 当获取到返回参数是json格式,并且code值为not_login的时候自动刷新页面,刷新页面后是否执行登录操作由后台处理。
//权限拦截自动跳转 if(status == 200){ try{ var obj = eval('(' + responses.text + ')'); if(obj.code=='not_login'){ window.location.reload(); return false; } }catch(e){ } }
jquery代码添加位置 (以jquery 2.1.4为例) 第8210行 if 判断内
// Get response data
if ( responses ) {
相关文章推荐
- 完美解决ajax访问遇到Session失效的问题
- java后台设置可跨域访问,前端ajax获取json数据,解决浏览器限制跨域访问的问题
- 匿名用户访问用发布站点模板创建网站的列表项时要求登录的问题解决
- 关于CAS服务端登录前ajax访问后台方法被拦截的配置-另外一种实现方式
- ajax访问遇到Session失效问题
- 如何把php项目部署到阿里云服务器window server2012__含公网ip访问时jquery/ajax失效解决办法
- 注册登录过程点滴(三):解决MVC3中使用Ajax.BeginForm会重复提交数据的问题 推荐
- 解决ajax和spring的跨域访问问题
- 使用Ajax时处理用户session失效问题的解决方法
- 登录时第一次输入验证码显示验证码错误。出现的问题:验证码ajax验证时 后台取不到session的值
- ajax与java前后台传值及数据表查询解决一个bug的问题
- ajax向后台请求数据包含中文乱码问题解决
- 解决ASP.NET AJAX在frame及iframe中跨域访问的问题
- 匿名用户访问用发布站点模板创建网站的列表项时要求登录的问题解决
- STRUTS+AJAX+JSP 请求到后台乱码问题解决方法
- jQuery的ajax访问后台的函数,有时正常,有时报连接错误的问题总结
- memcached缓存失效时的高并发访问问题解决
- 【问题解决】前台AJAX请求向Java后台传时+号变为空格—其他特殊字符解析出错也可参考解决
- PHP magento后台无法登录问题解决方法
- 解决Ecshop因为动态ip问题登录后台自动退出