我正在尝试使用链接发送DELETE请求,以便我可以在它之后使用express.js路由
<md-button href="/delete/{{userId}}">Delete</md-button>
app.delete('/delete/:user_id', function(req, res) {
User.remove({
_id : req.params.user_id
}, function(err, user) {
if (err)
res.send(err);
res.redirect('/');
});
});
注意:md-button来自https://material.angularjs.org,并且href属性的行为类似于锚标记。
但是,它会抛出错误:
Cannot GET /remove/5536d672106a3b540e0b0d96
我是否可以更改链接默认行为以进行DELETE请求而不是GET,或者唯一的方法是进行AJAX调用并在其他地方执行路由?
答案 0 :(得分:1)
是的,你需要在方法为DELETE
的地方进行ajax调用。点击链接将始终执行获取请求,除非您使用javascript拦截它,并在事件上执行其他操作和preventDefault()
。
因为你正在使用角度,你可以做这样的事情:
<md-button ng-click="vm.deleteUser(userId)">Delete</md-button>
并且在您的控制器中(您为此示例绑定为'vm'),您可以
this.deleteUser = function(userId){
... using your favorite lib do the delete request at '/delete/'+userId
}