java - request.getRequestDispatcher跳转了,日志也提示view(jsp)访问了,浏览器却没动静
欧阳克
欧阳克 2017-06-12 09:22:12
0
2
769

1、springmvc过滤器request.getRequestDispatcher跳转了,日志也提示view(jsp)访问了,浏览器却没动静。

if(!isLogin){
            httpServletRequest.getRequestDispatcher("/toLogin").forward(httpServletRequest, httpServletResponse);
        }

17:57:55.062 [http-nio-8080-exec-3] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Returning cached instance of singleton bean 'indexLogin'
17:57:55.062 [http-nio-8080-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Last-Modified value for [/toLogin] is: -1
17:57:55.063 [http-nio-8080-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Rendering view [org.springframework.web.servlet.view.JstlView: name 'login'; URL [/WEB-INF/view/login.jsp]] in DispatcherServlet with name 'springMVC'
17:57:55.063 [http-nio-8080-exec-3] DEBUG org.springframework.web.servlet.view.JstlView - Forwarding to resource [/WEB-INF/view/login.jsp] in InternalResourceView 'login'
17:57:55.064 [http-nio-8080-exec-3] DEBUG org.springframework.web.servlet.DispatcherServlet - Successfully completed request

页面有个功能请求通过jquery ajax去请求controller,过滤器发现没登录过滤器request.getRequestDispatcher发起登录请求跳到登录页面,日志记录已经forward了(看图2),但浏览器没跳。

2、而且单独请求/toLogin没问题,直接出来登录页面

欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

全部回复(2)
给我你的怀抱

AJAX 请求的时候,会将你返回的页面当成是数据使用 XMLHttpRequest.responseText 去接收。
正确的做法应该是如果后台发现不满足登录成功的条件,返回一个不成功的标志给 AJAX(比如:{"login" : "failed"}),然后前端判断如果是这个标志,那么通过 window.location.href 跳转到你定义的 “/toLogin” 页面。

phpcn_u1582

Ajax用js方式跳,form表单提交用你这种方式

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!