最近因为公司需求,需要对第三方公司进行沟通,对方提出用iframe简单嵌入即可。结果对面提出,我们的页面放在正常浏览器情况下是可以正常使用的, 不过在iframe标签中进行引用,就会发现提示跨域问题。
SecurityError: Blocked a frame with origin "XXX" from accessing a cross-origin frame.
这个报错不是不同域名下,访问iframe并提出请求才会出现的问题么
因为前后端分离的原因: 前端是vue项目, 后端是.NET的.
而且在开发中,后端已经对部分ip进行了跨域处理,在这次第三方的解除中,也是做了第三方的跨域处理,为什么还会出现跨域
困惑,谢谢各位大神
追加一个问题,因为部署页面使用的是iis,而报错产生有可能在于当iframe嵌入之后,前端页面并没有用本身服务器的地址进行请求所导致,目前还有待观察。
参考一下这个: https://www.cnblogs.com/yanweifeng/p/12377193.html
自己接口按理说应该没有问题,是不是引入路径有问题,用相对路径
iframe是可以加载第三方页面,但是通信还是会产生跨域
用postMessage解决
认为可以通过添加一个nginx代理,转发不同与框架的iframe页,并将iframe设置为相对路径 “/iframe/XX”
是不是可以把你们项目的页面和对方的放在一个服务器上,然后通过nginx配置,做一下代理,转发不同接口呢
既然出现SecurityError: Blocked a frame with origin "XXX" from accessing a cross-origin frame.
那就肯定是跨域了。检查一下主页面和iframe子页面的 协议、域名、端口是否完全一致吧 有一个不一样 就算跨域了
对了 还有 ip和域名也算跨域 及时他们指向同一台机器 也是跨域
基本问题已经找到,属于内部访问外部cookie后跨域的问题。