从iOS

时间:2017-12-07 09:30:50

标签: javascript ios redirect iframe mobile-safari

我将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 ,这是预期的行为吗? 如果是,是否有任何现有的解决方法?

1 个答案:

答案 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

有关