首页 > 解决方案 > 使用google pay时如何防止“Blocked a frame”错误?

问题描述

我已经为网站配置了 Google Pay,它在 Google Chrome 中运行良好。但是当我尝试在任何不同的浏览器中使用它时,我遇到了一个问题:在支付按钮上点击谷歌打开 pay.google.com 窗口然后我按下支付并且预加载器永远不会停止(永远不会调用 onPaymentAuthorized 回调)。

我尝试了谷歌示例https://jsfiddle.net/34wxopb2/,它工作正常。我在我的网站上发现的唯一区别是错误“未处理的 Promise Rejection:SecurityError: Blocked a frame with origin...”,这发生在点击 google pay 按钮时。所以我想这是问题所在,因为我的代码与上面的 jsfiddle 示例相同。如何解决?

<script async
  src="https://pay.google.com/gp/p/js/pay.js"
  onload="onGooglePayLoaded()"></script>

标签: cross-domaingoogle-pay

解决方案


正如我所料,问题不在谷歌支付中。我将 paymentClient 实例传递给 Vue 数据,这改变了它的结构(使其成为代理),这导致了问题。


推荐阅读