木灵鱼儿

木灵鱼儿

阅读:793

最后更新:2021/04/22/ 16:50:25

fetch和ajax获取不到头信息的解决办法

今天就遇到一个问题,后端从头信息给我携带了数据,我需要在请求头中获取,但是不管怎么get,返回的永远是null,但是f12去看响应头,那个数据就在那,亮瞎了眼。

一个大大的问号?why???

谷歌查了下原因,大概就两种:

  1. 安全限制,不允许客户端获取部分头信息
  2. 跨域了,对于跨域请求,客户端允许获取的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方式获取即可。

版权申明

本文系作者 @木灵鱼儿 原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

关于作者

站点职位 博主
获得点赞 0
文章被阅读 793

相关文章

目录树