问题背景:
首先应该看子系统是否已按照架构正常启动,其次查看主子系统的协议是否一致,是否使用了https协议,最后再根据一下几种情况具体分析处理
image.png
DOMException: Blocked a frame with origin from accessing a cross-origin frame 报错
可能原因: 子应用的沙箱被替换掉了,有三个原因:
- 子应用运行在一个空白的、
src为主应用host的iframe中,这个host地址会发生 302 之类的跳转导致沙箱被弄掉了 - 子应用为
vite应用,修改了window.location.href导致沙箱被替换掉了 - 子应用添加了 jsIgnores 的
plugin,对应的js文件修改了window.location.href
解决方案:
- 主应用提供一个路径比如说
https://host/empty,这个路径返回不包含任何内容也不会跳转,子应用设置 attr 为{src:'https://host/empty'},这样iframe的src就是https://host/empty -
vite子应用所有的location操作都必须采用window.$wujie.location -
jsIgnores对应的js文件所有的location操作都必须采用window.$wujie.location







网友评论