簡體   English   中英

如何處理Ajax,Spring MVC 3.2,@ ControllerAdvice調用的404異常

[英]How to handle 404 exception invoked by ajax, Spring MVC 3.2, @ControllerAdvice

在Spring MVC中,如果我使用常規提交方式提交Web表單,則可以處理web.xml中的404異常,

    <error-page>
        <error-code>404</error-code>
        <location>404.jsp</location>
    </error-page>
    <error-page>
        <exception-type>java.lang.Exception</exception-type>
        <location>404.jsp</location>
    </error-page>

但是如何攔截來自ajax調用的404錯誤(可能使用@ControllerAdvice )並將自定義異常傳遞給jquery xhr.responseText

您可以使用默認控制器處理未映射的請求,並在響應中寫入錯誤:

@Controller
public class DefaultController {

    @RequestMapping
    public void unmappedRequest(HttpServletResponse response) throws IOException {
        response.setStatus(HttpServletResponse.SC_NOT_FOUND);
        response.getWriter().write("404 error mesage");
    }
}

然后,您可以在JavaScript中獲取錯誤:

$.post("/servlet/wrong/url", function() {
     alert("success");
})
.fail(function(jqXHR) { 
     alert(jqXHR.responseText);
});

顯然,這僅適用於您的DispatcherServlet處理的請求,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM