收到响应后,XMLHttpRequest对象是否关闭?

chR*_*NaN 8 javascript ajax xmlhttprequest

我正在尝试使用XMLHttpRequest对象连接到服务器以在不同时间发布数据.我创建一个对象并"连接"到服务器,如下所示:

var xhr = new XMLHttpRequest();
xhr.open("post", location, true);
xhr.send(); //Is this send call needed to open the connection?
Run Code Online (Sandbox Code Playgroud)

在稍后的时间点,我称之为:

xhr.send("Something to send");
Run Code Online (Sandbox Code Playgroud)

但是,查看开发人员控制台,似乎只有初始请求通过(并成功响应).第二个请求似乎没有发送.我试图缩小可能存在的问题,所以我想:一旦收到回复,就可以关闭连接; 为什么要保持开放?所以,我的问题是:XMLHttpRequest对象连接收到响应后是否关闭?如果是这样,模拟连续打开连接的最佳方法是什么(不断重新连接?)?

Arn*_*LLY 5

是的,如果您没有欺骗服务器以使其保持活动状态,则会在发送响应后将其关闭.

也许你想寻找websockets.但是如果你不想玩那些,只需为你的每个"请求"创建一个新的HttpRequest.

与HTTP的基本通信:1请求 - > 1响应 - >关闭!

编辑:请记住,websockets是HTML5的一项新功能,因此它不适用于所有浏览器,如果它们适用于某些浏览器,它们可能没有完全实现.