【发布时间】:2015-10-29 08:52:31
【问题描述】:
我对编码还很陌生,目前正在学习 Devise/Omniauth。我正在编写一个教程,以让用户通过 Omniauth 与 Facebook 连接为例,但在控制台中出现以下错误:
XMLHttpRequest cannot load https://www.facebook.com/dialog/oauth?client_id=... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
我了解出于安全原因,某些浏览器不允许 CORS 请求。我确实在 StackOverflow 上找到了许多相关主题(link1、link2、link3、link4、link5),主要是允许
Access-Control-Allow-Origin: *
我试过了,但无法让它工作。因为我使用的是 ruby,所以我还发现有一个名为 (Rack-Cors) 的 gem 允许使用 ruby 进行 CORS 请求,我心想“酷,我得救了”,但我也无法让它工作.
用完了选项,因为我正在运行 Chrome,我也尝试以这种方式打开 chrome
open /Applications/Google\ Chrome.app --args --disable-web-security
它也没有工作。过去几天我尝试了不同的方法,但无法让 Omniauth Facebook 登录工作(PS:我已在我的应用程序的 Facebook 开发人员设置页面中允许访问 http://localhost:3000/)
请在 Github 上找到我的存储库的链接: repository
我做错了什么?是否有一些特定的方法来设置我缺少的 CORS?如果有人可以帮助或知道如何使其与 ruby/chrome 一起使用,将不胜感激。谢谢。
【问题讨论】:
标签: ruby-on-rails devise cors omniauth same-origin-policy