1

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

4

1 回答 1

0

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

httpResponse.EndServiceStackRequest();

这也已被弃用,如果您想缩短请求并阻止将来的处理,您应该使用:

httpResponse.EndRequest();

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

于 2013-08-21T17:47:52.597 回答