跨域cors中如何传递cookie(前端为什么无法向后端传递cookie?)

本文深入探讨了跨域环境下Cookie的工作机制,解释了在不同情况(无跨域与跨域)下,Cookie如何在客户端与服务器间进行交互。特别强调了在跨域请求中,如何通过设置withCredentials及Access-Control-Allow-Credentials来正确处理Cookie。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 没有跨域

后端server只要在回应头部‘set-cookie’,那么就会有cookie产生并保存在客户端client。

等到client再次向后端server发送请求时浏览器的机制就会自动携带cookie随着请求一并发送给后端。

 

  • 跨域

浏览器默认情况下无法主动跨域向后端发送cookie, 如果你要发送cookie给server的话, 就需要将withCredentials设置为true了.

但是,server并不是随便就能接受并返回新的cookie给你的。 在server端,还需要设置. Access-Control-Allow-Credentials: true

这样server才能返回新的cookie给你. 但是,这还有一个问题,就是cookie还是遵循same-origin policy的。 所以, 你依旧无法使使用它.

最多是访问到它。即使你设置了cors!所以很多时候你能访问到cookie,即使在客户端做了修改它也不会改变,他的CRUD只能由 server控制.

 

 

  • 最后建议

最好不要设置cors,一方面不安全(出于开发时的便捷,你可以使用一些中间件的代理例如proxyTable,帮你实现请求转发达到跨域请求的效果)。

另一方面cookie很多时候都是硬需求,还是老老实实的设置可访问的域,这样才能灵活使用cookie

转载于:https://www.cnblogs.com/xiaojingyuan/p/7606536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值