cross-domain - 使用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>
解决方案
正如我所料,问题不在谷歌支付中。我将 paymentClient 实例传递给 Vue 数据,这改变了它的结构(使其成为代理),这导致了问题。
推荐阅读
- python - 导入非 TMY3 格式的天气数据以用于 pvlib 模拟
- python - 是否有 Python 模块/(函数)可以设置 dsl ContainerOp(Kubeflow 管道)的 CPU 数量?
- amazon-web-services - 将文件从 Web 解压缩并复制到 s3 存储桶
- cloud - 无法将服务从 maven 部署到 Google App Engine 柔性环境
- r - 如何根据逻辑列的条件从数字列转发填充
- excel - 您可以在 Excel 的一列中汇总所有不同的值吗?
- c# - WPF中的剪贴板setImage错误CLIPBRD_E_CANT_OPEN
- regex - Vim yank/copy all multi-line patterns in file
- google-cloud-platform - Terraform GCP 启动脚本本地文件而不是内联文件
- python-3.x - Tensorflow 分类器。评估无限期运行?