我的Spring Boot應用程序在登錄端點http://server.org/users/login
上提供POST請求,這可能會導致401錯誤。在這種情況下,Spring正在對已註冊的錯誤頁面執行另一個POST請求,而我期望始終執行GET請求。是否有可能改變這種行爲?爲什麼Spring會對已註冊的錯誤頁面執行POST請求?
編輯:
我使用下面的代碼來配置我的錯誤頁面:
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/weblogin");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
container.addErrorPages(error401Page, error404Page, error500Page);
});
}
當我使用例如打電話http://server.org/users/login
一種形式,程序如下:
1)POST請求在http://server.org/users/login
2發給服務器)登錄憑據無效,錯誤頁面401應返回
3)我在這裏不知道接下來會發生什麼,Spring在日誌中告訴我,另一個POST請求執行到/weblogin
。如果我不指定自定義錯誤頁,POST請求執行到/error
:
2016-11-19 20:10:38,827 [http-nio-80-exec-3] DEBUG o.s.web.servlet.DispatcherServlet - DispatcherServlet with name 'dispatcherServlet' processing POST request for [/weblogin]
2016-11-19 20:10:38,828 [http-nio-80-exec-3] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Looking up handler method for path /weblogin
你的意思與「春什麼是執行另一個POST請求「?客戶會發出請求。 – Henry
**你可以顯示應用程序設置嗎?**我認爲spring不會調用任何post方法的錯誤,它會返回錯誤頁面,如果有的話。 –