跳转到另一个网站,例如售后平台,同个公司的系统
要免登陆打开新的标签页,要用window.open(’ ‘,_blank)的方法。
具体实现要和后端交流,要带的token或者参数,在售后平台获取登陆的参数设置token,保持登陆的装填,注意:两个域名必须要在同一个环境才能跳转成功。
方法一:
window.open(`http://example.com:8443/#/userList?token=${ token}`, '_blank')
带参数的跳转可以先把路由逻辑写好再使用:
let routeLogin = this.$router.resolve({
path: "/login",
query: {
redirect: 'toWeb'
}
});
window.open(routeLogin.href, '_blank');
//如果希望在新页面中打开超链接,则需要设置跳转方式为 _blank
这个实现需要与后端开发人员协调,还有另一个方法:
方法二:
通过设置cookie的一个属性:domain.
cookie的domain可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。注意第一个字符必须为“.”。
例如:
document.cookie = "username=Vicky;path=/;domain=.csdn.net"
一般在实现单点登录的时候会经常用到这个属性,通过在父级域设置Cookie,然后在各个子级域拿到存在父级域中的Cookie值。比如刚才设置的username属性,在blog.csdn.net下同样可以访问到,用户不用重新登录就可以拿到第一次登录进来时候的用户信息,因为这些用户信息都是存在父级域”.csdn.net”下面,其他页面也可以拿到。
所谓的单点登录是指用户在一个站点如www.studyez.com登录后切换到另一个站点communty.studyez.com时也自动 被community的Server判断为已经登录,反过来,只要用户在community.studyez.com登出后,切换到 www.studyez.com时后www的Server也会判断到这一用户已经登出。
因此,当在”blog.csdn.net”这个域名下存入一个Cookie;如:
document.cookie = "blogCookie=blog;path=/;domain=.blog.csdn.net";
然后你会发现在mp.csdn.net下看不到blogCookie这个属性。这个就是所谓的Cookie跨域的问题。
总结:domain表示的是cookie所在的域,默认为请求的地址,如网址为www.study.com/study,那么domain默认为www.study.com。而跨域访问,如域A为t1.study.com,域B为t2.study.com,那么在域A生产一个令域A和域B都能访问的cookie就要将该cookie的domain设置为.study.com;如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为t2.study.com。注意:一般在域名前是需要加一个”.“的,如”domain=.study.com”。
原文链接:https://blog.csdn.net/longgege001/article/details/81274088