设置CORS - '访问控制 - 允许 - 来源'用红宝石

时间:2015-08-06 09:23:44

标签: ruby-on-rails devise cors omniauth allow-same-origin

我对编码很新,目前正在学习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上找到了很多相关主题(link1link2link3link4link5),主要是允许

Access-Control-Allow-Origin: *

我试过了,无法让它发挥作用。因为我使用了ruby,我还发现有一个名为(Rack-Cors)的宝石允许使用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,那将非常感激。感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用rack-cors gem来解决问题

我们之前已经谈过类似的问题here