在开发是选择了使用自己生成的 token 来代替 session,打算通过 响应头 的方式把 token 传递给前端进行保存。 

在开发过程时,发现后端传递过来的 header 中明明已经有自定义的 token 属性,但是通过打印请求返回的 res 中,发现 header 头中并没有我要的属性(H5端)。其他小程序端都可以正常获取。

通过阅读 uni.request 的文档时,发现根据 W3C 的规范,在跨越中,需要通过在响应头中添加 Access-Control-Expose-Headers 属性,来指定哪些属性可以暴露在外。

只需要在后端响应头中 添加 Access-Control-Expose-Headers:token 后在前端就可以在 res.header 中就可以正常获取到了。

 成功在 header 中打印出来

这个现象只会出现在跨域请求中

在不跨越中,会正常获取到全部响应头中的属性

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐