背景:
最近在做一个项目, 主要流程如下:
window在请求node服务登录成功后, node端在window设置了cookie, 然后node端内又引入了一个iframe, 那么iframe向node端发送请求, 会不会带上cookie呢?
答案是可以的, 只要Node端设置CROS就可携带, 并且cookie属性没有设置Same-Site, 就会携带
但是又一个前提, 就是CROS的 allow-origin: 不能为*, 或者为多个域名, 只能设置一个, 只有设置一个的时候, 才可以携带cookie, 例如Egg.js框架的代码如下:
只有设置了
origin: 'http://localhost:4200', // 确切的域名
credentials: true, // 并且可以携带cookie,
此时才携带, 如果origin: *, 或者origin为一个多个时, 浏览器就会报跨域的错, 请求无法发送出去
算是折腾了蛮久的一个坑, 记录一下
感觉浏览器应该是主要为了防止跨站请求伪造攻击而设置的只有设定确切的域名才会携带cookie