Javascript 试图从与顶级框架具有不同安全源的文档启动Apple Pay会话

Javascript 试图从与顶级框架具有不同安全源的文档启动Apple Pay会话,javascript,iframe,subdomain,applepay,Javascript,Iframe,Subdomain,Applepay,问题: 我的网站上有ApplePay(https://www.example.com/order),它可以正常工作并成功支付 现在我尝试集成IFrame(src=”https://www.example.com/order子域(https://sub.example.com)的表单,其中包含apple pay和get错误 Trying to start an Apple Pay session from a document with an different security origin t

问题:

我的网站上有ApplePay(
https://www.example.com/order
),它可以正常工作并成功支付

现在我尝试集成IFrame(
src=”https://www.example.com/order子域(
https://sub.example.com
)的表单,其中包含apple pay和get错误

Trying to start an Apple Pay session from a document with an different security origin than its top-level frame
两个网站都使用Https


主域(有或没有
www
)和子域已在apple developer帐户中验证。

您不能将框架与apple Pay一起使用,因为这被认为是一种不良做法。

此错误可在webkit中找到

如果(!ancestorDocument->securityOrigin().isSameSchemeHostPort(topOrigin))
返回异常{InvalidAccessError,“试图从与顶层框架具有不同安全源的文档启动Apple Pay会话”。};
}
isSameSchemeHostPort
功能确保iframe和页面的协议、域和端口相同

返回a.protocol==b.protocol
&&a.host==b.host
&&a.port==b.port

因此,框架和页面的协议、域和端口必须相同,才能将iframe与ApplePay集成。

谢谢您的回答,但这只是一种不好的做法,或者是完全禁止的?我认为Apple pay也禁止这种做法