发送给Rails控制器的任何请求都会以HTTP_
为前缀,因为ActionDispatch::HTTP.Headers
附加了该请求。有没有办法防止这种情况(没有覆盖ActionDispatch::HTTP
,以便我可以按原样使用我的自定义标头,并将其用作headers.@env
的键?
答案 0 :(得分:3)
不,这是不可能的。这就是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
。