【发布时间】:2013-04-23 11:54:46
【问题描述】:
我正在尝试实现一个简单的 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();
});
编辑:也包括服务器端代码:
节点/Express
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.');
});
});
};
【问题讨论】:
-
这很挑剔,但如果请求删除某些内容,POST 或 DELETE 请求会比 GET 更合适。
-
我猜问题出在服务器端,请求没有被关闭等等?
-
@SamithaHewawasam 我想你可以。它只会应用于按钮单击并阻止它执行其默认操作(无论可能是什么)。它不应该对 ajax 调用有任何影响。
-
您没有在服务器端代码中向客户端发送任何响应。浏览器显示请求未决,因为它一直在等待响应。
标签: ajax node.js jquery express