javascript - 如何跨域获取cookie?
巴扎黑
巴扎黑 2017-04-11 08:57:06
[JavaScript讨论组]

使用前后端分离开发的项目,前端的域名为a.com, 后端的接口api为b.com,
a.com下有cookie信息,在向b.com发送请求时,是否有办法使b.com读取到a.com里面的cookie。[注:后端使用java开发]

巴扎黑
巴扎黑

全部回复(4)
PHP中文网

b.com没有办法直接获取到a.com的Cookie

不过可以在请求时附上,当然最好是用token

PHP中文网

前后端分离,最应该用token来交互,而不是用cookie。当然是可以取得cookie的。所有的cookie 都在头里面,有个Set-Cookie的字段,读取这个头就可以了。

Token是令牌。HTTP是无状态的,Cookie是记录HTTP状态的一种手段。浏览器会通过Set-Cookie字段获取Cookie。而Token是通过oauth认证后得到的令牌。

迷茫

其实核心是b.com要获取客户端关于a.com的的一些状态信息,基于这样的核心需求,其实有很多方案:
因为请求是访问a.com后发出的,所以a.com的页面读取cookie是不跨域的,然后把读取到的信息采用某种机制传递给b.com即可。

这里很多种方案在于所谓的某种机制,直接在请求中采用请求附加参数的形式是一种方案,对信息进行某种处理生成所谓的Token也是一种方案。

这些方案的确定需要你在设计a.com与b.com时进行定义与实现。如果b.com已经有固定的要求,则你只能想办法适应。

伊谢尔伦
  1. 我不太清楚你们的前后端分离是个怎么分离法,是否有前端server比如node?如果有node请求可以在node转发,如果没有node你的a.com又是打到什么服务器上的?

  2. token的方案可行,但是我不太建议在前端操作cookie,我觉得最好的方案是做反向代理,比如加层ng把a.com/api/xxx代理到b.com

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号