gpt4 book ai didi

ruby-on-rails - CORS 的 Rails 路由通配

转载 作者:行者123 更新时间:2023-12-04 05:55:27 26 4
gpt4 key购买 nike

我在 Rails API 上实现 CORS,我基本上想要定义一个路由,表示“所有通过 OPTIONS 方法调用 API 的请求都应该转到 Controller 操作 cors”。

到目前为止我所拥有的相关部分:

# routes.rb:
scope :module => 'api', :path => 'api' do
match '*', :action => 'cors', :constraints => { :method => 'OPTIONS' }
end

# base_api_controller.rb:
class Api::BaseApiController < ApplicationController
def cors
# ... setting headers of Access-Control-Allow-Origin and stuff here...
end
end

我遇到的问题是当我通过 javascript 发出请求时,出现错误:

OPTIONS <url> Resource failed to load

这似乎应该有效,我只是缺少一些简单的东西。有什么想法吗?

最佳答案

我不确定为什么您希望请求通过“ Controller 操作 cors”而不是默认的 api/ Controller ,但您可以这样做

#Gemfile
gem 'rack-cors', :require => 'rack/cors'

#config/application.rb
config.middleware.insert_before 0, "Rack::Cors" do
allow do
origins "*"
resource "/api/*", :headers => :any, :methods => [:options], :action => 'cors'
end
end

或者我不会将它发送到不同的 Controller 操作所以这实际上是我认为你想要的

#Gemfile
gem 'rack-cors', :require => 'rack/cors'

#config/application.rb
config.middleware.insert_before 0, "Rack::Cors" do
allow do
origins "*"
resource "/api/*", :headers => :any, :methods => [:options]
end
end

关于ruby-on-rails - CORS 的 Rails 路由通配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14616021/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com