前端无法获取响应头 Content-disposition

部分内容引用自:Access-Control-Expose-Headers(MDN)

默认情况下,只有六种 simple response headers 可以暴露给外部:

  • Cache-Control
  • Content-Language
  • Content-Type
  • Expires
  • Last-Modified
  • Pragma

想要暴露一个非简单响应头,可以这样指定:

1
Access-Control-Expose-Headers: Content-Length

想要额外暴露自定义的头,例如 X-Kuma-Revision,也可以指定多个,用逗号隔开:

1
Access-Control-Expose-Headers: Content-Length, X-Kuma-Revision

以此类推,在服务端增加如下代码即可:

1
2
3
4
5
6
7
@RequestMapping(value = "/mapping", method = RequestMethod.POST)
public void exportExcel(HttpServletResponse response) throws Exception {
...

response.setHeader("Access-Control-Expose-Headers","Content-disposition");
response.setHeader("Content-disposition", "attachment;value=123");
}