fetch和ajax获取不到头信息的解决办法
今天就遇到一个问题,后端从头信息给我携带了数据,我需要在请求头中获取,但是不管怎么get,返回的永远是null,但是f12去看响应头,那个数据就在那,亮瞎了眼。
一个大大的问号?why???
谷歌查了下原因,大概就两种:
- 安全限制,不允许客户端获取部分头信息
- 跨域了,对于跨域请求,客户端允许获取的response header字段只限于“simple response header”和“Access-Control-Expose-Headers” ,在“Access-Control-Allow-Headers”中加了无效
说到底,还是后端的设置,如果是nigix可以参考下面的代码:
以token头信息为例:
response.addHeader(“Access-Control-Allow-Headers”, “Content-Type,token”);
response.addHeader(“Access-Control-Expose-Headers”,“Content-Type,token”);
一定要设置这两段,单一条是没效果的。
设置完就能获取到头信息了。
featch中获取头信息方法:
fetch().then(response=>{
const token = response.headers.get("token");
});
get方式获取即可。
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据