前端获取后端响应数据添加的自定义响应头
/这里只把这个响应里的data返回回来了,所以取不到headers,想要全部信息就return response;响应首部 Access-Control-Expose-Headers 就是控制“暴露”的开关,它列出了哪些首部可以作为响应的一部分暴露给外部。因此,需要后端在header中添加 Access-Control-Expose-Headers 信息;是因为cros跨域,浏览器只会返回默认头部
可能会在header中无法获取到 content-disposition ;
① 拦截时,只返回了部分数据,
// 添加响应拦截器
axios.interceptors.response.use(response=>{
// 对响应数据做点什么
return response.data; //这里只把这个响应里的data返回回来了,所以取不到headers,想要全部信息就return response;
}, error=>{
// 对响应错误做点什么
return Promise.reject(error);
});
②后台没有返回 content-disposition 参数,需要后台搞一下;
查看了 network ,响应头确实有返回 content-disposition;但是打印以及通过.headers['content-disposition']就是获取不到;
是因为cros跨域,浏览器只会返回默认头部的header,并不能完全获取后端自定义的所有数据;
因此,需要后端在header中添加 Access-Control-Expose-Headers 信息;
响应首部 Access-Control-Expose-Headers 就是控制“暴露”的开关,它列出了哪些首部可以作为响应的一部分暴露给外部
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition")
这个时候就能在前端获取到响应的数据了
更多推荐
所有评论(0)