在我的application_controller.rb上,我有以下代码
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_filter :init_headers
def init_headers
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS'
headers['Access-Control-Request-Method'] = '*'
headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization'
end
end
我也在使用镀铬插件Allow-Control-Allow-Origin
当我运行angularjs前端时,我收到以下错误。
XMLHttpRequest无法加载
Response for preflight has invalid HTTP status code 404
答案 0 :(得分:3)
首先,我高度建议使用Rack-CORS gem。
您可以从ApplicationController
设置中运行规则,而不是乱用config
。
它从中间件处理CORS,因此您将能够按如下方式创建应用程序范围的规则:
#config/application.rb
...
config.middleware.insert_before 0, "Rack::Cors" do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options]
end
end
...
他们的文件非常好并且不言自明。
-
关于您的错误,404
代码表明您正在尝试访问根本不存在的资源。 URL或路由都不会接收请求。