我正在尝试在GET请求的响应上设置Cache-Control标头。
这适用于OPTIONS请求:
PreRequestFilters.Add((httpRequest, httpResponse) =>
{
if (httpRequest.HttpMethod == "OPTIONS")
{
httpResponse.AddHeader("Cache-Control", "no-cache");
httpResponse.EndServiceStackRequest();
}
});
这不适用于GET请求:
ResponseFilters.Add((httpRequest, httpResponse, dto) =>
{
httpResponse.AddHeader("Cache-Control", "no-cache");
});
过滤器正在运行...我也可以使用上述方法将自己的标题添加到响应中。
我使用的是3.9.58。
那么,这是一个错误(在ServiceStack中还是在我的代码中),还是因为REST和GET请求的性质而设计的呢?
答案 0 :(得分:0)
您不希望这样做,这会终止请求:
httpResponse.EndServiceStackRequest();
这也是不推荐使用的,如果您想要缩短请求并防止将来处理,您应该使用:
httpResponse.EndRequest();
但是在这种情况下你只想添加标题,你不想这样做。