AJAX发布帖子,但直到我刷新页面

时间:2016-11-12 21:54:03

标签: javascript jquery ajax mongodb mongoose

我对我的mLab数据库的AJAX POST请求有一些问题。基本上,我有一个' chartJS'我的页面上的图表,它响应我添加到我的数据库的数据。如果我运行我的PUT函数来更新单个文档,一切正常,我的图表会立即更新。然而,当我在POST函数中运行几乎完全相同的代码时(将类型更改为" POST"而不是" PUT")POST似乎永远不会完成,直到我刷新页面,我的图表准确,完整地反映了POST数据的时间。

我对所有这些编程工作都很陌生,但在我看来数据已经发布,但是POST响应陷入了困境,直到我通过刷新手动中止它 - 也许?

如果需要,我的代码位于https://github.com/TheScogg/lifelogs。非常感谢任何帮助!



function post() {
  jQuery.get("/db/", function(data, textStatus, jqXHR) {
    console.log("Get response:");
    // console.dir(data);
    // console.log(textStatus);
    // console.dir(jqXHR);
  }).done(function (data) {
    console.log("==========================================")
    console.log(sendInfo.activities);
    jQuery.ajax({
      url: "/db/",
      type: "POST",
      data: {
        date: sendInfo.date,
        activities: JSON.stringify(sendInfo.activities),
        survey: JSON.stringify(sendInfo.survey)
      },
      success: function (data, textStatus, jqXHR) {
        getData();
      }
    });
  }).done(function (data) {
    console.log("put date loaded");
  });
}


function put(idMatch) {
  console.log("Duplicate Date at id: " + idMatch);

  jQuery.get("/db/" + idMatch, function(data, textStatus, jqXHR) {
    console.log("Get response:");
    // console.dir(data);
    // console.log(textStatus);
    // console.dir(jqXHR);
  }).done(function (data) {
    console.log("==========================================")
    console.log(sendInfo.activities);
    jQuery.ajax({
      url: "/db/" + idMatch,
      type: "PUT",
      data: {
        date: sendInfo.date,
        activities: JSON.stringify(sendInfo.activities),
        survey: JSON.stringify(sendInfo.survey)
      },
      success: function (data, textStatus, jqXHR) {
        getData();
      }
    });
  }).done(function (data) {
    console.log("put date loaded");
  });
}

// Reload chart after POSTING/PUTTING NEW RECORD
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

charlietfl ,非常感谢你帮助我解决这个问题。我发现了我的错误 - 当我说这是一个noob错误时相信我。

我在各种文件中都有各种代码,这些代码将请求发送到同一个地方。例如,我在名为app.js的文件底部播放代码。但是,我也有代码试图在名为'./routes/index'的文件中发布到同一个地方。好吧,猜猜我在app.js文件的顶部意识到了什么?

var routes = require('。/ routes / index'); app.use('/',routes);

所以,它提出了一个POST请求,我忘记了我甚至在它之前创建了我认为我发送的POST请求之前已经创建过。

此外,我有各种备份文件,回想起来,它们可能一直在尝试使用类似的代码。

长话短说,我需要回过头来学习并真正尝试了解Express项目中所有事情之间的关系,并真正尝试了解所有内容的位置和原因。

再次感谢!

相关问题