vue+axios 无法带 cookie,有大佬帮忙看看原因吗?

2019-02-20 17:36:19 +08:00
 firhome
正在改造老项目。

vue 里的 代理已经映射到后端接口了。能正常请求。

发现 cookie 死活带不上,导致登录不了。

同样的环境 vue + jquery ajax 就可以正常

我用 vue + axios 就登录不了。 按照网上说的 withCredentials 也设置好了。
6832 次点击
所在节点    程序员
9 条回复
jas0ndyq
2019-02-20 17:41:48 +08:00
代理后不需要设置 withCredentials
firhome
2019-02-20 17:46:25 +08:00
@jas0ndyq 我就是各种办法都试过了才来问的。发请求的时候 res header 里 有 set-cookie 就是带不上
Sapp
2019-02-20 17:47:41 +08:00
我当初用 vuecli 的时候,axios 搭配 cli 自带的那个代理也是无法携带 cookie,不过不清楚是 axios 原因还是 cli 原因还是我没配置好,最后改用 nginx 转发就没问题了
yhxx
2019-02-20 17:49:14 +08:00
带不上是什么意思?
res header 是响应头,里面的 set-cookie 是服务端给客户端设置 cookie 的
Yoock
2019-02-20 17:50:11 +08:00
axios 可以配置请求时带不带 cookie 的,你搜一下看看
kyrkwode
2019-02-20 17:53:42 +08:00
别人能带上,为什么你不能带上,肯定是代码的问题啊,最好把代码贴出来才好判断哪里有问题
dong3580
2019-02-20 18:18:58 +08:00
F12 看一下请求头上有没有,是没发送还是后端没收到?
Loerise
2019-02-20 18:29:02 +08:00
如果是服务器向客户端 set-cookie 失败的话

1. 前端需设置 withCredentials: true
2. 服务器设置 'Access-Control-Allow-Credentials' 'true' 和 'Access-Control-Allow-Origin' '<具体地址,不能为 *>'

这是针对 nginx 的配置,注意看 2
其他的服务器自己查吧

@firhome
firhome
2019-02-20 18:49:53 +08:00
@Sapp
@Loerise

感谢各位回复,解决了。 vue-cli3.0 里面 我 proxyTable 设置的 target 是一个 ip, 结果后端的 set-cookie 域名是那个 ip,而我是用 localhost 访问的。 所以没有 cookie。

我老项目是 vue-cli 2 的版本 没发现这个问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/536968

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX