Angular2和Rails后端集成

时间:2016-01-27 20:15:42

标签: ruby-on-rails json angular

我正在使用angular2 / http模块开发一个非常简单的角度2应用程序来访问rails资源。我正在运行节点开发服务器和rails开发服务器。我遇到的问题是绕过针对rails后端的ajax调用的same origin policy限制。

错误:

XMLHttpRequest cannot load http://localhost:3000/people.
Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.

我的服务器在

http://localhost:8080 //node
http://localhost:3000 //rails

我需要澄清这是如何工作的:

  1. 如果我在同一个端口上运行这些服务会发生冲突吗?
  2. 如果您必须在不同的域上运行,您如何安全地执行此操作?
  3. 当服务器几乎肯定会在不同的端口/域上时,管理员如何在生产模式下处理此问题?

1 个答案:

答案 0 :(得分:6)

Langley的第二个链接出现了一个很棒的Rails模块来管理CORS。

Github rack-cors Gem

只需将其包含在Gemfile中,然后将以下内容添加到config/application.rb

即可
config.middleware.insert_before 0, "Rack::Cors" do
  allow do
    origins '*'
    resource '*', :headers => :any, :methods => [:get, :post, :options]
  end
end