【问题标题】:Why cant I read headers after updating to rails 4.2.0为什么我在更新到 rails 4.2.0 后无法读取标题
【发布时间】:2015-02-27 18:44:31
【问题描述】:

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

POSTman 请求

headers: access_token: '12345'

API 控制器

@access_token = request.headers['HTTP_ACCESS_TOKEN']

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我删除了我的答案,显然你的答案是正确的,不完全确定;我想我当时只是不明白吗?这已被接受,谢谢!
    猜你喜欢
    • 2019-06-23
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 2014-12-21
    • 2017-09-02
    • 2015-01-14
    • 1970-01-01
    相关资源
    最近更新 更多