我有一个“无头”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
答案 0 :(得分:1)
如果您将其更改为使用beforeRenderResponse事件,则-1 expires标头将消失。
这可能与响应部分后面的afterRenderResponse事件有关,因此创建了-1 expires头。