前端cookie为什么无法传递给后端

异常描述

在进行登录权限校验时,需要使用cookie。然而,在设置cookie时会出现以下异常,导致后端session为空异常。前端已经设置WITH_CREDENTIALS: true。

image.png


解决办法

将访问的127.0.0.1修改为使用localhost进行访问,就可以携带上cookie了。

image.png

可能原因

1. Cookie的域名限制

  • Cookie的域名绑定:Cookie 是与域名相关联的。通常,浏览器在发送 HTTP 请求时,只会向与存储该 Cookie 的域名匹配的服务器发送 Cookie。例如,如果 Cookie 绑定的域名是 example.com,那么只有在访问 example.com 或其子域名时,浏览器才会发送该 Cookie。
  • IP地址与Cookie127.0.0.1 是一个 IP 地址,而不是一个域名。Cookie 的域名策略通常不会将 IP 地址作为有效的域名来处理。因此,当使用 127.0.0.1 访问时,浏览器通常不会发送绑定到域名的 Cookie。

2. localhost的特性

  • localhost作为域名localhost 被视为一个标准的域名,即使它指向 127.0.0.1。浏览器将 localhost 视为一个有效的域名,因此可以正常地与 Cookie 关联。
  • Cookie与localhost:当你访问 localhost 时,浏览器可以将它识别为一个域名并正常地处理 Cookie,从而发送与 localhost 绑定的 Cookie。

3. 安全性考虑

  • 使用 IP 地址的局限性:通过 IP 地址发送 Cookie 在安全性上有一些潜在的风险,因为 IP 地址可能没有明确的域名上下文,这可能会导致 Cookie 的意外泄漏或被其他服务使用。因此,浏览器通常更倾向于在域名(如 localhost)下发送 Cookie,而不是在裸露的 IP 地址(如 127.0.0.1)下。

4. 实用建议

  • 如果需要在开发过程中测试带有 Cookie 的请求,建议使用 localhost 而不是 127.0.0.1。这样可以确保 Cookie 能够正常发送和接收,从而避免开发过程中出现与 Cookie 相关的问题。

总的来说,localhost 作为一个域名可以被浏览器识别并与 Cookie 绑定,而 127.0.0.1 仅仅是一个 IP 地址,不被浏览器认为是一个有效的域名,因此无法使用 Cookie。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值