【发布时间】:2016-08-23 13:01:00
【问题描述】:
在我的 XPages 应用程序中,我希望在从一个 XPage 向另一个 XPage 发送 XMLHttpRequest 时保持连接处于活动状态。因此,我将“Connection”标头设置为“keep-alive”。
在客户端我有:
xhr=new XMLHttpRequest();
xhr.setRequestHeader("Connection","keep-alive");
在服务器端(在响应 XPage 的 afterRenderResponse 事件中)我使用:
response=facesContext.getExternalContext().getResponse();
response.setHeader("Connection","keep-alive");
在检查请求和响应时(使用 FireBug),结果发现请求标头包含“Connection = keep-alive”(如预期的那样),但响应标头包含“连接 = 关闭”。
有人知道如何覆盖这个标题吗?
【问题讨论】:
-
从来没有专门这样做过,但很可能是 XPages 引擎简单地覆盖了标题。如果您想更好地控制请求(和标头)的输入和输出,请考虑在 NSF 中使用 servlet,如 Eric McCormick 所述:edm00se.io/servlet-series。
-
@MarkLeusink:感谢您的提示,但是使用 XPage 进行响应的好处是我可以在 afterRenderResponse 事件中直接使用我所有的 SSJS 代码。我想如果我要创建一个 Java servlet,我必须付出很多努力才能从那里运行 SSJS。
标签: jsf servlets http-headers xmlhttprequest xpages