Node.js无法处理与以下jQuery / Zepto XHR模式相似的客户端代码: 通用标签

在其他框架中之前,我已经完成了这种模式(在另一个XHR请求中发起一个XHR请求)。我已经阅读了“> Node.js错误:可以吗?设置标头发送后的设置以及基于事件的Node.js服务器模型的工作方式。换句话说,第一个XHR请求没有调用res.end(),所以当第二个XHR请求被调用时,Node.js会抱怨(在连续循环中顺便说一句)。

我的问题是:有人能推荐一种替代XHR请求客户端链接的模式吗?我可以在Node.js服务器端做一些事情来保持现有的客户端模式吗?

根据接受的答案进行更新
错误肯定是在我自己的服务器端代码中。一个简单的验证函数引发了一个错误,但是在捕获到错误后,仅调用了res.end()。由于某种原因,我曾经在调用res.end()的假设会立即停止函数的执行。在这种情况下,插入“返回”会在将JSON消息发送到客户端后立即停止执行。 通用标签

有帮助吗?

解决方案

问题不在于您的想法。由于回调,您的两个XHR以串行方式而不是并行方式发生。在第一个请求的整个请求/响应过程完成之前,第一个请求的success回调不会触发(node.js已经调用response.end(),浏览器已接收并解析了响应)。只有这样,第二个XHR才开始。您拥有的客户端AJAX模式很好。它将与node.js和任何其他Web服务器同样良好地工作。

您的问题出在服务器端的node.js代码中,但这不是节点中的错误或限制,而是您自己的编程错误。发布您的服务器端代码,我们可以帮助您进行跟踪。对于node.js初学者来说,通过简单的编码错误就可以解决此错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top