今天就遇到一个问题,后端从头信息给我携带了数据,我需要在请求头中获取,但是不管怎么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方式获取即可。

分类: vue 项目实战 标签: AJAX跨域vuenginxfetch头信息后端header

评论

暂无评论数据

暂无评论数据

目录