使用 Spring Boot,如何分别处理正常请求和 ajax 请求之间的异常



我正在使用Spring MVC和Spring Boot实现Java Web应用程序。

我想创建一个自定义错误页面(对于 404、500 错误),我尝试从这里使用解决方案:
https://stackoverflow.com/a/27393578/2148445它工作正常。但是,它拦截了所有 404/500 错误,甚至是我的 ajax 请求。我的 Web 应用程序基于 ajax 请求,因此当我调用 API 时,它会返回自定义错误页面而不是 json 响应。

我想:
当正常请求>>转到自定义错误页面时。
当 AJAX 请求>>返回错误响应作为 JSON 对象时。

我试图找到其他方法,但到目前为止我无法得到好的解决方案。我尝试使用@ExceptionHandler,但我的同事说它会覆盖Spring boot。

有没有办法解决这个问题?

谢谢你的帮助。

一种解决方案是在从浏览器执行 ajax 调用时发送一个值为"XMLHttpRequest"的"X-REQUEST-WITH"标头。

在后端,您可以检查具有给定值的标头是否可用于确定它是否是 ajax 调用。

最新更新