最近同事在写mvc的后台管理系统,通过iframe
实现不同域名的页面的嵌套。
但是有个问题,就是从父页面打开iframe
的子页面时,需要登录子页面,此时需要将子页面登录后的token存储到子页面的cookie中,方便子页面的其他接口可以获取到token,并将token添加到接口的headers中。
但是这就遇到了一个问题:【不同域名iframe嵌套时,】
网上提供的方法比较多的就是通过postmessage
的方式来处理:
这种方法的步骤是:父页面进行子页面的登录操作,拿到cookie后,通过postMessage传递到子页面,并通过document.cookie=xxx的方式存储到子页面中。这样子页面的接口就可以使用cookie.get的方式拿到token了。
如果我这边的操作步骤是:父页面直接iframe嵌套子页面,然后在子页面上进行登录操作。那么上面的postMessage的方式就不成立了。
此时可以通过子页面登录后,存储session的方式来处理。
session与其他存储的区别
https://blog.csdn.net/bigcarp/article/details/136249943
最后的实现方式是:通过session的方式来实现嵌套后子页面token的存储,这样就实现了最终的效果了。
经过测试:session和localstorage都是可以i实现的。就cookie不可以。