Ruby on rails 为什么';t工作架cors?
config/application.rbRuby on rails 为什么';t工作架cors?,ruby-on-rails,ajax,rack,Ruby On Rails,Ajax,Rack,config/application.rb require_relative 'boot' require 'rails/all' Bundler.require(*Rails.groups) module MyApp class Application < Rails::Application config.middleware.insert_before ActionDispatch::Static, Rack::Cors do allow do origins '
require_relative 'boot'
require 'rails/all'
Bundler.require(*Rails.groups)
module MyApp
class Application < Rails::Application
config.middleware.insert_before ActionDispatch::Static, Rack::Cors do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options, :patch, :delete]
end
end
end
end
bundle-exec-rake中间件
use Rack::Cors
another middleware…
这是控制台日志中显示的错误
XMLHttpRequest无法加载https://example.com. 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。起源'http://localhost:3000因此,不允许访问。响应的HTTP状态代码为405。
我该怎么办?试着将代码改成这样。我已经尝试在我的rails 5中只添加以下行即可。然后尝试重新启动服务器
module YourApp
class Application < Rails::Application
# Rails 5
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options]
end
end
end
end
moduleyourapp
类应用程序:any,:methods=>[:get,:post,:options]
终止
终止
终止
终止
我希望它能工作。您使用Rails 5还是Rails 4?@muhamadakbarinwidayat我使用Rails 5!请再次阅读错误消息<代码>XMLHttpRequest无法加载https://example.com。如果您是从
https://example.com
;)你可以试着问他们是否会在example.com上添加CORS标题…@max谢谢你的评论!但我不明白我该怎么做…对不起。如果你愿意,你能告诉我具体应该做什么吗?谢谢你的回答!但是很抱歉,错误消息没有更改…这无法回答问题。错误消息清楚地表明正在向http://example.com
(IANA示例域)而不是本地主机。rails服务器上的CORS头实际上是完全无关的。
module YourApp
class Application < Rails::Application
# Rails 5
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options]
end
end
end
end