簡體   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