Xpages XPage正在强制过期:-1标头

Xpages XPage正在强制过期:-1标头,xpages,lotus-domino,Xpages,Lotus Domino,我有一个“headless”XPage(返回JSON),我正在设置Expires头以强制浏览器在至少一个小时内不再请求JSON提要。我在AfterRenderResponse事件中有如下代码-但是查看响应头,我看到了Expires头,但也看到了一个额外的“Expires:-1”头,Domino似乎正在强制执行该头。我在8.5.1和8.5.3服务器上看到了这一点。这是已知的bug吗?有没有办法阻止Domino添加expires头 // Get handle to output writer - w

我有一个“headless”XPage(返回JSON),我正在设置Expires头以强制浏览器在至少一个小时内不再请求JSON提要。我在AfterRenderResponse事件中有如下代码-但是查看响应头,我看到了Expires头,但也看到了一个额外的“Expires:-1”头,Domino似乎正在强制执行该头。我在8.5.1和8.5.3服务器上看到了这一点。这是已知的bug吗?有没有办法阻止Domino添加expires头

// Get handle to output writer - we will sender JSON text directly 
var externalContext = facesContext.getExternalContext();
var writer = facesContext.getResponseWriter();
var response = externalContext.getResponse();

// set headers
response.setContentType("application/json"); 
var now = new Date(); 
response.setDateHeader ("Expires", now.getTime() + (60*60*1000));
response.setHeader("Cache-Control", "public");

// Output it
writer.write(getJSONResponse ());
writer.endDocument();
facesContext.responseComplete();
我在答复中看到的是:

HTTP/1.1 200 OK
Server: Lotus-Domino
Date: Tue, 15 May 2012 13:17:57 GMT
**Expires: -1  <--- WHY????**
Content-Type: application/json;charset=UTF-8
Expires: Tue, 15 May 2012 14:17:52 GMT
Cache-Control: public
Content-Length: 901
HTTP/1.1200正常
服务器:LotusDomino
日期:2012年5月15日星期二13:17:57 GMT

**Expires:-1如果将其更改为使用beforeRenderResponse事件,则-1 Expires标头将消失


这可能与部分响应之后发生的afterRenderResponse事件有关,因此创建了-1 expires标头。

不幸的是,我尝试了这个方法,Domino仍然添加了额外的标头。在我的测试中,它消失了。尝试在应用程序属性中设置缓存选项。我还没有测试这是否会影响Xagents你的测试是否包括向facesContact responseWriter写信?我发现,如果不向响应写入任何内容,就可以去掉Domino生成的头。一旦我添加了一行:writer.write(“xxx”);Domino强制Expires:-1头。是的,我已写入responseWriter。@Ed Schembor:ExternalContext没有getWriter()方法。