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

标签 javascript ajax xmlhttprequest

我正在尝试使用 XMLHttpRequest 对象连接到服务器以在不同时间发布数据。我创建一个对象并像这样“连接”到服务器:

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

在稍后的某个时间点,我调用这样的东西:

xhr.send("Something to send");

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

最佳答案

是的,如果您没有欺骗您的服务器使其保持事件状态,它会在发送响应后关闭。

也许你想寻找 websockets。但是,如果您不想玩这些,只需为每个“请求”创建一个新的 HttpRequest。

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

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

关于javascript - 收到响应后 XMLHttpRequest 对象是否关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28099211/

相关文章:

javascript - 上传后未显示 Ajax 数据

java - JSF 2.0 项目上 MyFaces Trinidad 的基本设置是什么?

JavaScript jQuery 提交按钮问题

javascript - 在 Javascript 对象中返回键和值

javascript - 我从 Javascript 中的 For Loop 函数中得到错误

javascript - 在 Node.js 中使用 Azure SendGrid 发送电子邮件

javascript - XMLHttpRequest 不会抛出错误,但不会调用 onload

javascript - p5.j​​s 中两个不同形状的物体碰撞检测

php - 如何在php中读取Excel文件数据并通过jquery发送

javascript - 如何在xmlhttprequest中发送jwt?