设置Cache-Control:GET请求上的no-cache

时间:2013-08-21 11:18:34

标签: servicestack cors

我正在尝试在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请求的性质而设计的呢?

1 个答案:

答案 0 :(得分:0)

您不希望这样做,这会终止请求:

httpResponse.EndServiceStackRequest();

这也是不推荐使用的,如果您想要缩短请求并防止将来处理,您应该使用:

httpResponse.EndRequest();

但是在这种情况下你只想添加标题,你不想这样做。