为什么我在更新到rails 4.2.0后无法读取标题

时间:2015-02-27 18:44:31

标签: ruby-on-rails ruby-on-rails-4 nginx http-headers passenger

我有一个应用程序,我最近升级到Rails 4.2.0。在这个应用程序中,我请求一个小API的访问令牌。在API控制器中,我试图获取此令牌。我正在使用POSTman进行测试,向我的本地机器发送请求,使用dev或生产工作完美地运行它。向nginx phusion乘客服务器发送请求不会产生任何结果,根据日志,令牌为零。

POSTman请求

headers: access_token: '12345'

API控制器

@access_token = request.headers['HTTP_ACCESS_TOKEN']

当我在某处读取时,所有标题都被读入所有上限 - 我现在似乎无法找到,这是正确的设置。我的rails 3.2 app用于读取没有前缀标题的小写,并且正常工作。升级到4.2.0后,此功能在本地中断。添加前缀和大写引入读取在开发和生产模式中解决了本地问题。但是,一旦部署,标题似乎总是为零。

由于我可以在生产模式下本地运行并且这有效,因此我很难弄清楚部署后会发生什么。这是nginx还是乘客?我对nginx很新,我在这里遗漏了什么吗?您将提供的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

在带有CGI接口的Web服务器上使用rails时,Apache或NGIX会删除这些标头。 这是一个遗留问题。 ACCESS-TOKEN和ACCESS_TOKEN将映射到相同的CGI变量'access_token'。 由于Dashes在标题中更常见,因此忽略了下划线。