【发布时间】:2018-07-12 11:22:56
【问题描述】:
我有一个简单的控制器方法,它通过 ActionController 的 #headers 方法记录标题:
class ThingsController < ActionController::Base
def show
Rails.logger.info headers
render json: {response: 'success'}
end
end
但是,当我通过带有标头的 curl 调用此控制器方法时,它们不会被记录:
curl "http://localhost:3000/things/1” \
-H "access-token XXX" \
-H "token-type Bearer" \
-H "client YYY" \
-H "expiry 1234" \
-H "uid test@test" \
相反,会记录以下标头:
{"X-Frame-Options"=>"SAMEORIGIN", "X-XSS-Protection"=>"1; mode=block", "X-Content-Type-Options"=>"nosniff"}
我认为我的 Rails 5 应用程序的 CORS 策略可能是罪魁祸首,所以我安装了 rack-cors gem 并在下面的初始化程序中配置它。不幸的是,它并没有改变结果。
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*',
headers: :any,
methods: %i(get post put patch delete options head)
end
end
【问题讨论】:
标签: ruby-on-rails cors ruby-on-rails-5 rack rack-cors