无法使用 Stripe 支付模块在“DOMWindow”上执行“postMessage”

Posted

技术标签:

【中文标题】无法使用 Stripe 支付模块在“DOMWindow”上执行“postMessage”【英文标题】:Failed to execute 'postMessage' on 'DOMWindow' using Stripe Payment Module 【发布时间】:2020-01-15 20:34:24 【问题描述】:

我在我的 Angular 应用程序中集成了 Stripe 支付模块。当我运行该应用程序时,它会显示以下错误。

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://js.stripe.com') does not match the recipient window's origin ('http://localhost:4200').

有什么解决办法吗?

【问题讨论】:

似乎与 CORS 相关的东西失败了。我不知道条纹,但这是一个提示。 可能是与***.com/questions/27573017/…类似的修复 我已经尝试过该解决方案但无法正常工作,因为我认为该解决方案适用于 youtube,并且我在这里集成了支付网关,当我使用该解决方案更改 https 时不允许这样做到 http.@taintedzodiac 我也遇到了错误。你找到解决办法了吗? 我通过将脚本标签标记为异步来解决它:<script src="https://js.stripe.com/v3/" async></script> 【参考方案1】:

我的最后一次测试被证明是有价值的。看来您需要进行屏蔽重定向、代理路由、url 重写或嵌套 iframe 来解决此问题。

【讨论】:

您确实需要更详细地解释如何执行这 4 个解决方案中的每一个,而不仅仅是通过名称提及它们。我是审稿人。 *** 要求审查这个答案。感谢您的回答,并且(如果解释更多)很有帮助。此评论旨在帮助您做出足够好的答案,无论是好还是优秀。【参考方案2】:

结果是用于输入卡号、CVC 和到期时间的占位符没有出现在我们的网络应用程序上。尽管对https://js.stripe.com 的调用返回了 200,但网络查询显示它处于挂起状态。 (有趣且可能相关的是,对 Intercom 的 API 调用也将返回 200 tho 未决)

浏览器:该问题仅发生在 Chrome 67 上(Firefox 60 和 Safari 11 - 都在 Mac High Safari 上 - 工作正常)

关闭所有 Chrome 扩展程序 - cc 占位符仍然没有出现 关闭并重新启动 Chrome - 它们出现了。万岁! 重新启动的扩展 - browserstack、react、redux - cc goodies 仍然 出现了 关闭并重新启动 Chrome - cc 好东西仍然可见。

鉴于我多年来一直在使用带有上述扩展程序的 Chrome 并没有出现此问题,因此重新启动 Chrome 似乎更有可能解决它。时间会证明一切。

【讨论】:

【参考方案3】:

可能是你们压缩或聚合您的网站 javascript 文件以提高性能。尝试移除压缩或聚合并再次测试。

【讨论】:

以上是关于无法使用 Stripe 支付模块在“DOMWindow”上执行“postMessage”的主要内容,如果未能解决你的问题,请参考以下文章

Stripe 无法在 webview 中进行支付错误

“无法识别的特征:‘支付’。”,来源:https://js.stripe.com/v3/ (1)

“未捕获的类型错误:在 angularJS/NodeJS 中使用条带支付方法 Stripe.charges.create() 时无法读取未定义的属性‘创建’”

无法在 iOS 应用中使用 Stripe?

我可以在不使用 Stripe Card Element 的情况下使用 Stripe api

Expo Go Stripe:本机模块不能为空