向控制器添加响应标头非常简单,例如:
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String test(HttpServletResponse response)
{
response.setHeader("specialheader", "Special Header");
return "ok";
}
但当用户尝试访问服务器上的静态内容(如 .css 文件)时,情况并非如此,我显然不想为每个文件创建端点。
因此,我尝试使用一个实现 ResponseBodyAdvice 的新类(@ControllerAdvice),并覆盖“beforeBodyWrite”函数,我得到了每个具有端点的查询的预期结果。
这个想法来源于此link.
但是,当我尝试访问服务器上的简单 .css 文件时,不会调用 ControllerAdvice,因此该文件在浏览器中打开,但没有设置预期的标头。
如何为从服务器发出的每个响应(包括静态文件的响应)添加通用响应标头?
您必须应用过滤器。这将适用于每个 HTTP 请求的响应。
您可以在这里找到确切的答案:如何在Spring Boot中添加过滤器类?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)