【问题标题】:Using Spring Boot, how to separately handle exception between normal request and ajax request使用Spring Boot,如何分别处理普通请求和ajax请求的异常
【发布时间】:2015-09-03 18:02:07
【问题描述】:

我正在使用 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监听类吗?
  • 我觉得这有点棘手。您可以采取的最佳方法是创建一个控制器来处理错误,将HttpServletRequest 注入其中并根据请求的路径返回 JSON 或重定向到错误视图。

标签: java ajax spring spring-mvc spring-boot


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-06-20
    • 2015-06-18
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    相关资源
    最近更新 更多