【问题标题】:Ajax get request not getting response after 5 calls5次调用后Ajax获取请求未得到响应
【发布时间】: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


【解决方案1】:

您的问题是您正在 /getAll 函数中创建一个新连接,默认池大小为 5,如您在 docs 中所见。

您应该在 node.js 应用程序启动时创建连接,并在整个应用程序中使用该连接,而不是为每个请求创建新连接。

【讨论】:

  • 那么我如何创建一个可以一直持续的连接?
  • 我有点困惑,因为我几周前才开始使用nodejs
  • 也许我应该在函数外部放置一个 ajax 监听器?
  • 我不熟悉你的项目结构,但一般来说你应该在初始化你的应用程序和表达等的同时创建连接,有很多关于如何做的教程那个,例如this one
猜你喜欢
  • 2021-09-04
  • 2023-04-08
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
相关资源
最近更新 更多