【问题标题】:Overwrite response header in Yesod覆盖 Yesod 中的响应标头
【发布时间】:2017-07-09 15:48:08
【问题描述】:

如何覆盖之前在 Yesod 中设置的响应标头?当我使用addHeader 函数时,它会添加另一个具有相同名称的标题而不是覆盖它。例如,如果在处理函数中我这样做:

addHeader "foo" "bar"
addHeader "foo" "baz"

我明白了

foo: bar
foo: baz

但我只想得到一个

foo: baz

在我的例子中,标头是一个身份验证令牌,它的工作方式是,如果它存在于请求中,那么我将它发送回响应中。我将其实现为中间件。但是,如果是登录请求,则会生成一个新的令牌,并且应该发送它而不是请求标头中的值。

【问题讨论】:

    标签: haskell yesod


    【解决方案1】:

    addHeader 由 Writer 实现。 https://www.stackage.org/haddock/lts-8.21/yesod-core-1.4.35/src/Yesod.Core.Handler.html#addHeaderInternal

    无法使用addHeader

    可以通过使用sendWaiResponse并手动创建Response来实现,但是比较麻烦。

    【讨论】:

      猜你喜欢
      • 2016-08-06
      • 2014-10-12
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 2011-10-07
      相关资源
      最近更新 更多