我正在尝试按下按钮发送DELETE请求,但我不确定我的jQuery是否已设置,尽管使用了删除方法的路由,但我仍然收到GET请求错误{{ 1}}。我使用我的jQuery走在正确的轨道上,如何阻止此GET请求?
路线:
Cannot GET /app/delete/1
链接:
appRoutes.route('app/delete/:testId')
.delete(function(req, res){
models.Test.destroy({
where: {
userId: req.user.user_id,
testId: req.params.testId
}
}).then(function(){
res.redirect('/app');
});
});
jQuery的:
<a href="/app/delete/{{test.testId}}" id="test-delete-link">Delete</a>
答案 0 :(得分:5)
问题是,当点击链接时,它会使用GET
。点击链接后,会发生两件事。
click
事件,jQuery发送DELETE
请求。GET
请求,因为它是一个链接。要解决此问题,请将链接的href
属性设置为"javascript:void(0);"
。这使得单击该链接除了在click
事件中指定的内容之外什么都不做。
作为旁注,我会将请求的路径从/app/delete/:testId
更改为/app/:testId
。现在的方式是多余的,正如你所说DELETE /app/delete/1
。更加RESTful的方式是DELETE /app/1
。