【发布时间】:2019-09-13 01:20:36
【问题描述】:
我正在尝试使用 ajax get 请求从 mongodb 服务器获取一些信息到前端。一切正常,除了如果我尝试调用 5 次 javascript 函数,我没有从本地服务器得到任何响应。
我尝试在 nodejs 函数中添加一些 console.log() 以进行调试,看来我第 6 次调用该函数时,nodejs 函数甚至都没有运行。
javascript ajax 前端代码:
function addLike(music){
var request = new XMLHttpRequest();
request.open('POST', '/AddLike', true);
request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
var myobj = {"music": music};
request.send(JSON.stringify(myobj));
setTimeout(function(){
$.ajax({
url: "/getAll",
type: 'GET',
dataType: 'json', // added data type
success: function(res) {
// => the 6th time i launch addLike(music), the function doesn't go there
update(res);
}
});
}, 200);
}
nodejs函数:
app.get("/getAll", function(req, res){
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
if (err) throw err;
var dbo = db.db("SoundShare");
var tab = dbo.collection('Musique');
tab.find({}).toArray(function(err2, result) {
if (err2) throw err2;
res.send(JSON.stringify(result));
db.close();
});
});
});
如下图所示,在 Firefox 的控制台中,最后一个 get ajax 请求没有收到任何响应。
。 .
这似乎是服务器端的问题,但我不明白如何解决它。
提前感谢您的回答。
【问题讨论】:
-
304 表示它已被缓存,因此请设置缓存标头...。同时在 Ajax 调用中添加一个错误处理程序并记录它所说的内容。
-
发布后设置超时?如果您期望该调用实际完成,这似乎是一个坏主意。
-
是的,我知道我需要使第一个帖子调用异步,以便在帖子结束后调用 get 请求
标签: javascript node.js ajax mongodb