起因:项目新建,引用了之前老的权限框架jar,POST请求账户名和密码都输入正确,并且验证成功,返回结果却404
报错404的地方
①:org.springframework.web.servlet.resource.ResourceHttpRequestHandler的handleRequest方法。
String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
// path为""
方法入口:org.springframework.web.servlet.resource.ResourceHttpRequestHandler的handleRequest方法。
那什么地方做了这个操作,把HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE放到request.getAttribute()里面了呢
继续往上走:
(1)org.springframework.web.HttpRequestHandler.handleRequest()方法
(2)org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle()方法
(3)org.springframework.web.servlet.HandlerAdapter.handle()方法
(4)org.springframework.web.servlet.DispatcherServlet.doDispatch()方法
(5)org.springframework.web.servlet.DispatcherServlet.doService()方法
(6)org.springframework.web.servlet.FrameworkServlet.doService()方法
(7)org.springframework.web.servlet.FrameworkServlet.processRequest()方法
(8)org.springframework.web.servlet.FrameworkServlet.service()方法
(9)org.springframework.web.servlet.FrameworkServlet.doGet()方法
(10) javax.servlet.http.HttpServlet.service()方法
(11) javax.servlet.GenericServlet.service()方法
(12) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter()方法
(13) org.apache.catalina.core.ApplicationFilterChain.doFilter()方法
(14) javax.servlet.FilterChain.doFilter()方法
②:org.apache.coyote.http11.Http11Processor.service()
最后解决了:原因竟然是请求头的问题:
Content-Type:application/x-www-form-urlencoded
X-Requested-With:xmlhttprequest