angular - Facebook登录弹出窗口在成功登录后没有关闭,我没有得到任何回应
问题描述
我正在尝试在我的 Angular 应用程序中使用 Facebook SDK 来实现使用 facebook 的登录功能,iframe 正常打开并且登录过程有效,但是在成功登录后 iframe 没有关闭并且我没有得到任何响应(令牌) 在我的代码中。我还将这个脚本包含在我的 index.html 文件中,并将其用于在线支付:
<script src="https://test-gateway.mastercard.com/checkout/version/51/checkout.js" data-cancel="cancelCallback"
data-complete="completePaymentCallback" data-timeout="timeoutCallback">
</script>
<script type="text/javascript">
function cancelCallback() {
document.dispatchEvent(new Event('payment-cancel', {bubbles: true}));
}
function completePaymentCallback(data) { //console.log(data);
document.dispatchEvent(new CustomEvent('payment-completed', {bubbles: true, detail: data}));
}
function timeoutCallback() {
document.dispatchEvent(new CustomEvent('payment-timeout', {bubbles: true}))
}
</script>
在支付脚本中,我正在注册回调来处理支付状态,这个脚本负责打开一个弹出窗口来处理在线支付。我发现如果我不在我的 index.html 中包含这个脚本。facebook登录工作得很好。
有一个图片链接,解释了 iframe 的状态https://i.ibb.co/TRY2PJS/facebook-login.jpg
我遵循的使用 Facebook API 的教程可以在这里找到:
https://medium.com/@sarat.e99/facebook-login-oauth2-from-angular-6-f55a96c2be00
万事达卡 javascript 文件在我的控制台中发出错误,这是错误
Uncaught SyntaxError: Unexpected token s in JSON at position 0
at JSON.parse (<anonymous>)
at checkout.js:1
at ZoneDelegate.invokeTask (zone.js:423)
at Zone.runTask (zone.js:195)
at ZoneTask.invokeTask [as invoke] (zone.js:498)
at invokeTask (zone.js:1744)
at globalZoneAwareCallback (zone.js:1781)
万事达卡脚本中的代码片段在我的控制台中引发错误:
var xDomain = function(targetWindow, targetHost, name) {
var json3 = "undefined" != typeof JSON3 ? JSON3 : require("./json3.js"),
callbacks = {};
! function(callback) {
window.addEventListener ? window.addEventListener("message", callback) : window.attachEvent("onmessage", callback)
}(function(event) {
var payload = "string" == typeof event.data ? JSON.parse(event.data) : event.data,
type = payload.type,
data = payload.data;
if (type && callbacks.hasOwnProperty(type)) return callbacks[type](data)
});
解决方案
推荐阅读
- wordpress - scriptaculous-effects 作为在与 algolia wordpress 插件冲突时调用 javascript 文件的依赖项
- xslt - 简单的 xsl:key 不匹配
- c++ - 更改内存地址值和十六进制数据
- python - “str”对象不可调用,但我根本没有使用“str”
- linux - 在 Linux 上,如何确定一个连接的当前 TCP 接收窗口大小?
- python - 如何在一个简单的功能上 Cythonize / 允许 numba.jit:(在网络中查找三角形)
- php - 如何在 swoole 上做一个经典的 php exit()?
- python - Python:为什么这些看起来相同的字符串被评估为不相同
- c++ - 搜索一般树?函数在树的末尾停止而不是搜索下一个分支
- javascript - 如何在 FullCalendar 中为第二天等创建“下一个”按钮