是否可以向ajax
服务器发送请求,将对象存储在那里HttpServletResponse
并随时将响应发送给客户端?
$.get({
url: '/startChat',
async: true,
success: function (msgToAdd, textStatus, jqXHR) {
alert(msgToAdd)
},
error: function (jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
服务器:
private HttpServletResponse firstResponse;
@RequestMapping(value = "/startChat", method = RequestMethod.GET)
public void startUserChat(HttpServletRequest request, HttpServletResponse response) {
firstResponse = response;
}
稍后使用存储的对象firstResponse
将消息发送到success
函数ajax
我尝试这样做,success
我的消息出现在函数中,但 90% 的模式都有一些奇怪的模式,而且模式是随机的。
我检查了对象httpServletResponse
,在附加 msg 和不附加 msg 的情况下都是一样的。
对象实例
HttpServletResponse
属于容器(网络服务器),而不是你。它可以与应用程序员在大多数情况下不知道的许多容器资源相关联。通常,具体与具体Response
相关Request
,尝试欺骗Response
会使您的软件处于未定义状态。不要存储或尝试替换此类资源。响应的内容应该在 HttpServletResponse.getOutputStream() 中传递给客户端,缓存的响应应该以可以流式传输(直接或通过序列化)的格式存储。在这种情况下,您应该始终使用
Response
刚从容器中收到的那个。