关于 Angular 跨域请求携带 Cookie 的问题

在前端开发调试接口的时候都会遇到跨域请求的问题。传统的方式是使用 Nginx 反向代理解决跨域。比如所有接口都在 a.com 的域下,通过 Nginx 将所有请求代理到 a.com 的域下即可。

使用框架及 Webpack 进行开发时,也可以通过插件实现反向代理。比如使用 Angular 的时候可以通过 proxy.config.json 进行跨域设置。

但是如果开发的测试环境需要登录认证,则请求时需要携带 Cookie 信息。通过 Fetch 发送请求时,可以设置 credentials: 'include' 。而在 Angular 中,则是设置 withCredentials: true 。但是仍然存在跨域的问题。比如本地服务器为 localhost:XXXX,而登录的 Cookie 信息在 a.com 的域下。所以还是无法解决跨域问题。不知道是不是自己没有找到更科学的方法。

为了解决这个问题,最后采用了一个相对保守的方法,可以使用 Chrome 插件 modheader 将 Cookie 手动添加到请求头中。虽然问题解决了,但切换页面时,还要反复设置插件开关,因为每个页面的 Cookie 是不一样的。暂时没有找到更好的解决办法。

posted @ 2018-05-06 19:42 叙帝利 阅读(...) 评论(...) 编辑 收藏