我正在使用Braintree Drop-In控制台,我刚刚遇到内容安全策略问题,主要是在Safari浏览器中,它会返回以下错误,从而导致客户端脚本问题。单击PayPal按钮时会出现这些错误,这会产生一个弹出窗口,一旦弹出窗口关闭就会再次返回页面。
[Error] Blocked a frame with origin "https://checkout.paypal.com" from accessing a frame with origin "https://assets.braintreegateway.com". Protocols, domains, and ports must match.
[Error] Blocked a frame with origin "https://www.paypal.com" from accessing a frame with origin "https://assets.braintreegateway.com". Protocols, domains, and ports must match.
我被建议在设置方法中启用 enableCORS ,该方法无效。还建议修改页面策略中的某些指令,但是我不会在我的页面中包含CSP,所以我不认为这会产生任何影响。 即https://developers.braintreepayments.com/reference/client-reference/javascript/v2/best-practices#using-braintree.js-with-a-content-security-policy
我确实尝试添加了一些元标记,但是它导致了比以前更多的错误,所以我删除了它们。
有没有人遇到过这个问题,可以建议或提供一个如何解决这个问题的例子?只有Safari才会遇到问题,因为它对此很敏感。
答案 0 :(得分:1)
Safari中的这些错误基本上都是装饰性的 - 不应该影响处理。
我的问题是由于我遇到的safari中的jquery ajax超时问题
async
设置为false
。 Braintree的响应在生产中花费了超过10秒来返回响应,因此Safari会超时。