1. Der SpringMVC-Filter request.getRequestDispatcher sprang und das Protokoll zeigte auch an, dass auf die Ansicht (JSP) zugegriffen wurde, der Browser sich jedoch nicht bewegte.
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
Auf der Seite gibt es eine Funktionsanforderung zum Anfordern des Controllers über jquery ajax. Der Filter request.getRequestDispatcher initiiert eine Anmeldeanforderung und springt zur Anmeldeseite (siehe). Abbildung 2), aber der Browser springt nicht.
2. Und es ist kein Problem, nur /toLogin anzufordern, die Anmeldeseite wird direkt angezeigt
AJAX 请求的时候,会将你返回的页面当成是数据使用
XMLHttpRequest.responseText
去接收。正确的做法应该是如果后台发现不满足登录成功的条件,返回一个不成功的标志给 AJAX(比如:
{"login" : "failed"}
),然后前端判断如果是这个标志,那么通过window.location.href
跳转到你定义的 “/toLogin” 页面。Ajax用js方式跳,form表单提交用你这种方式