window.open()打开的跨域页面,能否通过js写入cookie?
代码如下,我执行该逻辑理想状态下直接进入 this.formData.url
;而实际上在登录页被挡住了,查看过页面的cookie
,并没有我设置的token
this.formData.url
是https://200.200.5.5
这种格式。
token已验证过是正确的,试过手动在网站通过js添加cookie然后刷新,可行
之前有人实现过该功能,代码雷同,不知道是不是我姿势不对
async login () {
let token = await this.getToken();
if (!token) {
return;
}
console.log(token);
// token=TEllnRx61o7yixQ8icuis7frmzvZWF/x
document.cookie = `${token}; path=/; domain=${this.formData.url}; expires=${new Date().getTime() + (1000 * 60)};`;
let newWin = window.open();
newWin.location.href = this.formData.url;
},
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
写入 cookie 时域名是受限的,你只能在当前域写入 cookie,请求的时候浏览器会自动从当前域获取 cookie 并发送,所以你不能操作其它域的 cookie,怎么操作都不行。
如果是跨域这样应该解决不了,一般还是传参过去,在另一边做处理,
独立网站的话就没什么办法了。讲道理他不会让你这样随便设置的。
如果可以设置会有什么危害?
两个不同域名地址,跨域了cookie是不能共享的
统一回复,前端跨域写cookie,不可行。之前被实现的方案是个误会,访问的是反向代理的地址。