使用AngularJS和Codepen测试Rails API

问题描述 投票:0回答:1

让我的笔在localhost上与我的开发服务器通信时遇到一些麻烦。

我有一个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 direclty键入浏览器,我可以成功调用页面,但我不知道如何解决在codepen中运行的脚本的这个错误。

如果有兴趣,我的javascript中的请求只是:

$http.get("localhost:3000/test").then(
   function(response) {
     console.log("success");
   },
   function(response) {
      console.log("failed");
   }
 );
ruby-on-rails angularjs codepen
1个回答
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

请记住,这将允许从任何来源访问。您可能希望为生产环境更改此设置。

© www.soinside.com 2019 - 2024. All rights reserved.