在Spring MVC中,如果我使用普通提交提交网页表单,我可以在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
)并将自定义异常传递给xhr.responseText
中的jquery
?
答案 0 :(得分:1)
您可以对未映射的请求使用默认控制器,并在响应中写入错误:
@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处理的请求