我遇到了这个问题,当我尝试使用 XHR 通过 Facebook 登录我的网站上的用户时,我的请求被阻止,但是如果我复制 XHR 请求的 URL 并将其粘贴到浏览器中,我就会登录。
这是一个简单的示意图:
为什么 xhr 在浏览器可以访问的同一 URL 上被阻止?
最佳答案
Why is xhr getting blocked on the same url a browser can access?
因为它是跨域请求,因此远程方必须首先允许该请求,这就是所谓的 CORS。
Facebook 不允许通过来自不同域的脚本加载其登录对话框 - 明显的原因是用户需要能够通过浏览器地址栏验证他们将登录凭据发送到哪个网站,以避免网络钓鱼.
您无法在后台通过XHR/AJAX加载FB登录对话框;您需要在顶部窗口实例中调用/重定向到它。
关于javascript - Facebook xhr 登录 : Cross-Origin Request Blocked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39212136/