删除 Rails 标头中的HTTP_前缀



任何发送到 Rails 控制器的请求都会获得一个前缀为 HTTP_,因为它附加了ActionDispatch::HTTP.Headers。有没有办法防止这种情况(不覆盖ActionDispatch::HTTP,以便我可以按原样使用我的自定义标头并将其用作headers.@env的键?

不,这是不可能的。这就是 ActionDispatch::Http::Headers 类设计用于规范化标头的方式。

private
def env_name(key)
  key = key.to_s
  if key =~ HTTP_HEADER
    key = key.upcase.tr('-', '_')
    key = "HTTP_" + key unless CGI_VARIABLES.include?(key)
  end
  key
end

您仍然可以使用自定义标头。您只需要将它们引用为 HTTP_X_FOO 而不是 x-foo .

相关内容

  • 没有找到相关文章

最新更新