gpt4 book ai didi

grails - 在 grails 3 拦截器中的每个请求上添加一个响应头

转载 作者:行者123 更新时间:2023-12-01 03:05:18 24 4
gpt4 key购买 nike

我想将此自定义 header 添加到我的其余 API 上的每个响应中:

"customHeader": "foo"

为此,我创建了一个匹配每个 Controller 的 grails 拦截器,并允许我修改请求。
class FooInterceptor {

FooInterceptor() {
matchAll()
}

boolean before() { true }

boolean after() {
header 'customHeader', "foo" //first try
response.addHeader 'customHeader', "foo" //second try to do the same
response.setHeader 'customHeader', "foo" //third try, setHeader doesn't work either
true
}

void afterView() {
}
}

我已经调试了,可以看到 Controller 响应后调用了after方法:
respond([status:dodes.OK], [:])

我可以清楚地看到我的拦截器被调用,并且 addHader 没有抛出任何异常,但我的 header 没有添加到最终响应中。

我的猜测是,也许 chalice 的响应方法以某种方式“锁定”了响应,因此无法在之后添加 header ,但我不确定。

如何使用拦截器向 grails 3 上的每个响应添加 header ?

最佳答案

以下对我有用。您可能需要使用 before() 代替。

class FooInterceptor {

FooInterceptor() {
match controller: '*', action: '*'
}

boolean before() {
response.setHeader('customHeader', "foo")
true
}

boolean after() { true }

void afterView() {
// no-op
}
}

关于grails - 在 grails 3 拦截器中的每个请求上添加一个响应头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58338610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com