Ruby on rails 使用AngularJS和Codepen测试Rails API
在让我的笔与本地主机上的开发服务器通信时遇到一些问题 我有一个angularjs脚本,它使用$http.get请求从服务器获取一些json,但它会导致这个错误Ruby on rails 使用AngularJS和Codepen测试Rails API,ruby-on-rails,angularjs,codepen,Ruby On Rails,Angularjs,Codepen,在让我的笔与本地主机上的开发服务器通信时遇到一些问题 我有一个angularjs脚本,它使用$http.get请求从服务器获取一些json,但它会导致这个错误 Access to XMLHttpRequest at 'localhost:3000/test' from origin 'https://s.codepen.io' has been blocked by CORS policy: Cross origin requests are only supported for protoco
Access to XMLHttpRequest at 'localhost:3000/test' from origin 'https://s.codepen.io' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Rails服务器和浏览器在同一台机器上,如果我在浏览器中直接键入服务器url,我可以成功调用该页面,但我不确定如何解决在codepen中运行的脚本的此错误
如果感兴趣,我的javascript中的请求只是:
$http.get("localhost:3000/test").then(
function(response) {
console.log("success");
},
function(response) {
console.log("failed");
}
);
尝试取消对gem文件中的
rack cors
gem的注释。然后在config/application.rb
中,您可以像这样配置cors:
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: [:get, :post, :options]
end
end
请记住,这将允许从任何来源进行访问。您可能需要为您的生产环境更改此设置。您的gem文件中是否有
机架cors
gem?不,我没有!我会试试的。不幸的是,没有乐趣。不过,我不确定消息是否真的到达了我的rails服务器。这看起来像是在它击中我的服务器之前在浏览器中以某种方式被阻止了。(注意,上面提到的消息出现在我的chrome控制台上,而不是Rails服务器控制台上。)(