【问题标题】:How can access the headers of an incoming request in tritium?如何在氚中访问传入请求的标头?
【发布时间】:2013-07-07 21:57:24
【问题描述】:

我希望能够根据传入的请求标头向我的氚项目添加一些逻辑。是否可以访问头部信息,然后执行 match() with() 逻辑?

我的计划是采用现有的 URL(可以通过正常的 GET 请求访问)并为其提供第二种功能模式,以便可以将其转换为 AJAX API。当 JavaScript 发出 API 请求时,我可以设置自定义标头标志,以便平台知道以不同方式解释请求。

【问题讨论】:

    标签: ajax http-headers moovweb


    【解决方案1】:

    您应该能够使用全局变量语法访问传入 HTTP 请求中的标头。例如,要访问网站的主机名:

    $host
    # => yourwebsite.com
    

    我相信大多数标准头文件都可以作为 Tritium 中的全局变量访问。但是,我不确定 all 标头是否可以作为全局变量访问。

    在您的项目文件夹中,在您的开发机器上,应该有一个 tmp 文件夹,其中包含 HTTP 请求/响应包。每个捆绑包都应带有请求的日期和时间的时间戳。我认为如果您在其中一个文件夹中窥视,您应该会看到一堆文件:

    • incoming_request
    • incoming_response
    • outgoing_request
    • outgoing_response

    可能还有第五个文件。我不记得在当前版本的平台中是否仍然是这种情况,但是您可能会找到第五个文件,其中包含 Tritium 服务器创建的用于存储 HTTP 请求标头值的全局变量。因此,您可以查看该文件(如果存在)并找出您的 HTTP 标头使用的变量名称。

    希望有帮助!

    【讨论】:

    • 我相信有两个,initial-env.json 和 final-env.json。您可以在 initial-env.json 中找到在 tritium 执行开始时为您设置的所有全局变量,包括请求标头。
    【解决方案2】:

    我在这个问题上迟到了,但我想我会向其他需要帮助的人伸出援助之手。

    您需要在脚本目录中创建两个文件,一个名为

    request_main.ts

    response_main.ts

    然后您可以使用诸如 parse_headers 函数之类的东西,该函数会根据您将代码放入的文件来遍历请求/响应标头。

    parse_headers() {  # iterate over all the incoming/outgoing headers
      log(name())      # log the name of the current cookie in the iteration
      log(value())     # log the value of the current cookie in the iteration
    }
    
    parse_headers(/Set-Cookie/) {  # iterate over the Set-Cookie headers only.
      log(this())
    }
    

    这将记录您的所有标题名称,进行修改,然后您可以使用“setter”函数,您可以在此处阅读:

    http://developer.moovweb.com/docs/local/configuration/headers

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 2011-04-29
      • 1970-01-01
      相关资源
      最近更新 更多