如何发送ObjectID与Ajax到后端(Node.JS)

字体结束代码(HTML,Javascript)我想使删除button,但我不能发送ObjectID与AJAX

var retName = $(this).data("row-id"); $.ajax({ type: "POST", url: "/delete", data: {'id' : ObjectId(retName)} , success: function() { }, error: function(textstatus, errorThrown) { alert('text status' + textstatus + ', err ' + errorThrown); } }); 

后端代码(Node.js)

 app.post('/delete', function(require, response) { db.open(function(error, db) { db.collection('infodb', function(error, collection) { var doc = require.body; console.log(ObjectId(doc)) collection.remove(doc, function() { db.close(); }); }); }); }); 

非常感谢你

我认为在你的NodeJS中,应该是这样的

 app.post('/delete', function(require, response) { db.open(function(error, db) { db.collection('infodb', function(error, collection) { var doc = require.body.id; console.log(doc) collection.remove(doc, function() { db.close(); }); }); }); }); 

因为你想要参数id

另外,因为它已经是对象ObjectId我不明白为什么你会得到该对象的ID。

如果这不起作用,你尝试传递另一个variables,而不是你的ObjectId?

我不知道你为什么使用“POST”方法删除数据。 为什么不能定义删除方法并给api一个正确的名字。 由于API名称不能是一个动词,在这里删除是动词。 你可以像这样定义你的代码,我将把这个API名称作为“用户”。 你可以改变它

 var retName = $(this).data("row-id"); $.ajax({ type: "DELETE", //Delete method here url: '/user/'+retName , success: function(data) { console.log(data); }, error: function(textstatus, errorThrown) { alert('text status' + textstatus + ', err ' + errorThrown); } }); 

并在节点js

 app.delete('/user/{id}', function(req, response) { console.log(req.params.id); //this will give you id db.open(function(error, db) { db.collection('infodb', function(error, collection) { //var doc = require.body; console.log(ObjectId(doc)) collection.remove(doc, function() { db.close(); }); }); }); });