【问题标题】:Failed to execute 'postMessage' on 'DOMWindow' using Stripe Payment Module无法使用 Stripe 支付模块在“DOMWindow”上执行“postMessage”
【发布时间】: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 相关的东西失败了。我不知道条纹,但这是一个提示。
  • 可能是与stackoverflow.com/questions/27573017/…类似的修复
  • 我已经尝试过该解决方案但无法正常工作,因为我认为该解决方案适用于 youtube,并且我在这里集成了支付网关,当我使用该解决方案更改 https 时不允许这样做到 http.@taintedzodiac
  • 我也遇到了错误。你找到解决办法了吗?
  • 我通过将脚本标签标记为异步来解决它:<script src="https://js.stripe.com/v3/" async></script>

标签: angular stripe-payments


【解决方案1】:

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

【讨论】:

  • 您确实需要更详细地解释如何执行这 4 个解决方案中的每一个,而不仅仅是通过名称提及它们。我是审稿人。 StackOverflow 要求审查这个答案。感谢您的回答,并且(如果解释更多)很有帮助。此评论旨在帮助您做出足够好的答案,无论是好还是优秀。
【解决方案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 文件以提高性能。尝试移除压缩或聚合并再次测试。

    【讨论】:

      猜你喜欢
      • 2018-05-29
      • 2019-11-05
      • 2016-08-20
      • 2018-05-30
      • 2018-11-24
      • 2019-12-09
      • 2016-12-11
      • 1970-01-01
      相关资源
      最近更新 更多