如何用空白页面替换Spring Boot的“Whitelabel错误页面”?

mem*_*und 5 java spring spring-mvc

对于任何异常,默认情况下 Spring Boot 都会路由到/error,这会生成错误 HTML 页面:

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.
Wed Oct 31 16:01:01 CET 2018
There was an unexpected error (type=Not Found, status=404)
Run Code Online (Sandbox Code Playgroud)

问题:如何才能默认仅针对某个端点显示空白页面?

有一个属性server.error.whitelabel.enabled=false,但它完全禁用错误处理,以便显示网络服务器的默认错误页面(例如,在 Tomcat 上显示 404 错误页面)。

那不是我想要的。我只想显示一个空白的普通页面。或者可以这么说:一个空的响应主体。但如何呢?

因为,对于开发和测试来说,“Whitelabel Error Page”就可以了。但在生产中我想完全隐藏任何异常细节。

mem*_*und 3

我刚刚发现这个“Whitelabel Error Page”仅显示在请求text/html 内容类型的网络浏览器中网络浏览器中。

如果仅使用本机客户端访问 Spring REST Web 服务application/json,则错误会自动转换为 JSON。

如果确实想为 Web 浏览器显示空白页面,可以以BasicErrorController#errorHtml()某种方式重写 bean 方法。