我将iFrame嵌入到外部支付提供商,用户完成其步骤后,用户将被重定向到我的域。 我现在正尝试将父网页重定向到我网域上的另一个网页,如下所示:
iFrame嵌入在mydomain.com
<iframe src="example.com/payment" sandbox="allow-top-navigation allow-forms allow-scripts"></iframe>
重定向父网页的代码
window.top.location.href = "mydomain.com";
在iOS上的Safari中我现在得到: SecurityError:DOM例外18:试图突破用户代理的安全策略。
即使我在沙箱参数中使用了 allow-top-navigation ,这是预期的行为吗? 如果是,是否有任何现有的解决方法?
答案 0 :(得分:0)
我自己找到了答案。 我的iframe沙箱属性缺少: allow-same-origin 参数
工作示例
[{
"_id": "5a0cf90cf3de893b000b8e3b",
"name": "business2",
"boxes": ["dasdsadsdasbox", "dsadajhhgbox"],
"users": ["user2"],
"deleted": false
}, {
"_id": "5a0cf90cf3de893b321321",
"name": "business1",
"boxes": ["dasds321321box", "ds321321hgbox"],
"users": ["user1"],
"deleted": false
}]
<强>解释强>
据我所知,问题是重定向: example.com/payment 到 mydomain.com 这会被某些浏览器阻止。 遗憾的是,我没有找到为什么阻止这种特定重定向的明确解释。 它似乎与:https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy
有关