繁体   English   中英

服务器在 AJAX 请求后发送多个响应 - 使用 Socket.IO 和 ExpressJS

[英]Server sending multiple responses after AJAX request - using Socket.IO and ExpressJS

我正在尝试构建一个实时程序,用户可以在其中在 Google 地图上设置标记,而其他已连接的人可以获得相同的标记。 除了几分钟后,服务器端再次提交数据外,一切似乎都正常。

澄清一下:客户端在地图上设置一个标记,该标记被发送到服务器,以 JSON 格式运行 Node JS 和 Express JS。 服务器将数据返回给所有连接的客户端。 几分钟后,服务器再次发送它接收到的相同数据,导致“客户端代码”示例的最后一行出现“ERR_EMPTY_RESPONSE”客户端。

客户端代码:

var data = new Array();

data.push({lat: Gmap.markers[0].lat, lng: Gmap.markers[0].lng});

var xhttp = new XMLHttpRequest();
xhttp.open("POST", "/marker", true);
xhttp.setRequestHeader('Content-type', 'application/json; charset=UTF-8');
xhttp.send(JSON.stringify(data));

服务器端:

var app = express():
app.post('/marker', function(req,res){
    io.emit('marker', req.body);
})

任何人都知道发生了什么?

您需要发送对 http 请求的响应。 如果不这样做,浏览器将超时并可能尝试重试。

var app = express():
app.post('/marker', function(req,res){
    io.emit('marker', req.body);
    res.send("ok");     // <== Send a response to the http request here
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM