前端下载文件时无法获取到header['Content-Disposition']

我们在做文件下载的功能时,往往需要后端将文件名称返回给前端,前端获取文件名称并从浏览器上下载文件。

一般情况下,后台会将文件名称加在请求的响应头的Content-Disposition中,前端只需要去获取该字段即可。

但是由于浏览器的限制,前端只能在network中看到Content-Disposition字段但是代码中无法获取。

此时,就需要后端将其字段暴露出来。前端才能成功的拿到该字段。

后端设置如下:

response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");  

 response.setCharacterEncoding("utf-8");  


  String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");  

  response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");

response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); //在此处开放Content-Disposition权限,前端代码才能获取到
posted @ 2023-03-28 13:00  icon-icon  阅读(1884)  评论(0编辑  收藏  举报