使用AngularJS和Codepen测试Rails API

时间:2019-03-17 01:27:49

标签: 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 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");
   }
 );

1 个答案:

答案 0 :(得分:1)

尝试取消注释Gemfile中的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

请记住,这将允许从任何来源访问。您可能需要针对生产环境进行更改。