2017-08-05 65 views
0

我不明白如何发送请求从我的前端与jquery到后端触发应该搜索数据库和删除/更新文档的功能。我只想按下按钮并删除/更新文档。一切工作正常如果我通过邮递员提交请求。我是一个有节点的初学者,我找不到解决方案。如何从前端触发后端节点/快递功能?

app.js

app.delete('/delete/:id', (req, res) => { 
 
    let id = req.params.id; 
 
    if (!ObjectID.isValid(id)) { 
 
    return res.status(400).send(); 
 
    } 
 
    Blog.findByIdAndRemove(id).then((docs) => { 
 
    res.status(200).send({docs}) 
 
    }).catch((e) => { 
 
    res.status(400) 
 
    }); 
 
}); 
 

 
app.patch('/update/:id', (req, res) => { 
 
    var id = req.params.id 
 
    var update = {autore: req.body.autore} 
 
    if (!ObjectID.isValid(id)) { 
 
    res.status(400).send() 
 
    } Blog.findByIdAndUpdate(id, update, {new: true}).then((docs) => { 
 
     res.send({docs}); 
 
    }).catch((e) => { 
 
    res.status(400) 
 
    }); 
 
});

HTML

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <title>Titolo</title> 
 
    </head> 
 
    <body> 
 
     <button id:"cancella" type="submit">Submit</button 
 

 
    <script src="/js/jquery.js"></script> 
 
    <script src="/js/script.js"></script> 
 
    </body> 
 
</html>

这个script.js文件是否也必须由后端管理?

预先感谢您!

的script.js

$(document).ready(function() { 
 
$('#cancella').on("click", function() { 
 
    $.ajax({ 
 
    url: '/delete/:id', 
 
    type: 'DELETE', 
 
    data: {"_id": 5984f1a8d2c11b0354d1601b}, 
 
    dataType: 'json', 
 
    success: function(data) { 
 
    console.log('Dati cancellati!' + data); 
 
    }}); 
 
}); 
 
});

回答

0

jQuery您在发送idbodynode你在你的query parameters越来越..

你应该改变你的jQuery网址,你不需要发送任何body

$(document).ready(function() { 
$('#cancella').on("click", function() { 
    var baseURL = 'http://localhost' // depending of your config you should set this 
    $.ajax({ 
    url: baseURL + '/delete/' + 5984f1a8d2c11b0354d1601b, 
    type: 'DELETE', 
    success: function(data) { 
    console.log('Dati cancellati!' + data); 
    }}); 
}); 
}); 

这应该做的伎俩

+0

它似乎没有工作,我的基本URL“http://192.168.0.4:3000”和任何其他ID。看来,浏览器不发送任何请求:( – Artax5005