我有一个"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发布于 2012-05-15 22:16:42
如果将其更改为使用beforeRenderResponse事件,-1 \f25 expires -1标题将消失。
这可能与在响应的一部分之后触发的afterRenderResponse事件有关,因此创建了-1 \f25 expires -1标题。
https://stackoverflow.com/questions/10601608
复制相似问题