葡萄-我如何从响应中删除头?



我想删除一些我的web服务器注入到报头响应的报头,但无法删除

我只看到添加头的辅助函数,但没有办法在Grape中删除它们,我似乎找不到包含头的变量

我特别想去掉由我的Passenger服务器注入的X-Powered-By, Passenger似乎只提供删除版本号的能力,但不能完全删除它…这似乎不安全…

我想在我的before

before do
## I see i can easily add headers, but not remove
header 'X-Robots-Tag', 'noindex'

## how do I remove headers here?
## ...
end
## ... some routes
get '/' do
## ...
end

许多库提供删除头文件的功能,例如:

ExpressJS h5>
response.headers['Connection'] = 'Closed'
remove_keys = %w(X-Runtime Cache-Control Server Etag Set-Cookie)
response.headers.delete_if{|key| remove_keys.include? key}

虽然在我看来有点尴尬的文档确实显示,你可以删除头只通过传递键而不是值(或传递值作为nil)

示例:

before do
## I see i can easily add headers, but not remove
header 'X-Robots-Tag', 'noindex'

## how do I remove headers here?
header 'X-Powered-By'
end

我猜这个概念是,设置为非值的标头根本不是真正的标头。

最新更新