5

我正在尝试实现一个简单的 AJAX GET 请求。此请求告诉服务器删除数据库中的文档。当我从服务器确认该文档已被删除时,Chrome Inspector 显示该请求处于“待处理”状态,最终导致服务器错误。

我做错了什么?

HTML

<div class="delete-note">
    <a href="#"><i class="icon-minus-sign"></i></a>
</div>

JS

$('.delete-note').click(function(e) {
  var url = '/docs/' + doc_id + '/note_destroy/' + note_id;
  $.ajax({
    type: "GET",
    url: url,
    cache: false,
  });
  e.preventDefault();
});

编辑:还包括服务器端代码:

节点/快递

exports.note_destroy = function(req, res) {
  Doc.findOne({ doc_id : req.params.doc_id }, function(err, data) {
    if (err) throw (err);
    note_id = req.params.note_id;
    data.notes.id(note_id).remove();
    data.save(function(err) {
      if (err) throw (err);
      console.log('note ' + note_id + 'is removed.');
    });
  });
};
4

1 回答 1

7

您的服务器端函数不会写入任何响应,因此浏览器会无限期地等待它。尝试编写响应,可能带有客户端可以检查的某种状态代码以判断删除是否有效。就像是...

res.writeHead(200, { 'Content-Type': 'application/json' });
res.write(JSON.stringify({ status: OK }));
res.end();
于 2013-04-30T09:53:31.790 回答