AngularJS on Rails 中的 CORS 问题
Posted
技术标签:
【中文标题】AngularJS on Rails 中的 CORS 问题【英文标题】:CORS issue in AngularJS on Rails 【发布时间】:2015-11-02 19:54:47 【问题描述】:我的应用是用 AngularJS on Rails 编写的。我尝试使用 Angular 方式或 Rails 方式来解决 CORS 问题。 “POST”方法还是不行,“GET”方法没问题。
我已经将此代码放入我的应用程序中。
myapp.config(['$httpProvider', function($httpProvider)
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
])
和 Rails 应用程序控制器 我也提出来了。
after_filter :set_access_control_headers
def set_access_control_headers
headers['Access-Control-Allow-Origin'] = '*'
end
我还尝试了 gem 'rack-cors', :require => 'rack/cors'。
提前感谢您的帮助。
【问题讨论】:
CORS 不仅仅是一个标题 【参考方案1】:要了解有关 CORS 的更多信息,我强烈推荐article。
那么,由于您使用的是 Rails,您可以按照rack-cors 的说明进行操作:
在config/application.rb
config.middleware.insert_before 0, "Rack::Cors" do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options]
end
end
还请务必检查此示例 Rails 4 配置:https://github.com/cyu/rack-cors/blob/master/examples/rails4/config/application.rb
【讨论】:
以上是关于AngularJS on Rails 中的 CORS 问题的主要内容,如果未能解决你的问题,请参考以下文章
Googlebot 在 Rails 4.1 上导致无效的跨域请求 (COR)
如何将AngularJS $资源中的params序列化为rails 3.2兼容的参数
将Ckeditor值绑定到angularjs和rails中的模型文本
Angularjs中的事件广播-浅谈$broadcast,$emit,$on
什么相当于 rails 7 中的 `Rails.config.action_view.raise_on_missing_translations`?