NodeJS - jQuery DELETE Method
NodeJS - jQuery DELETE Method
我正在尝试在单击按钮时发送 DELETE 请求,但我不确定我的 jQuery 是否已设置,尽管使用了用于删除方法的路由,但我仍然收到 GET 请求错误Cannot GET /app/delete/1
。我的jQuery是否在正确的轨道上,我如何防止这个GET请求?
路线:
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');
});
});
链接:
<a href="/app/delete/{{test.testId}}" id="test-delete-link">Delete</a>
j查询:
<script type="text/javascript">
$(document).ready(function() {
$('#test-delete-link').click(function(){
$.ajax({
type: 'DELETE',
url: '/app/delete/{{test.testId}}'
});
});
});
</script>
问题是当单击链接时,它会使用 GET
.当您的链接被点击时,会发生两件事。
- 触发
click
事件,jQuery 发送DELETE
请求。 - 浏览器将
GET
请求发送到同一路径,因为它是一个链接。
若要解决此问题,请将链接的 href
属性设置为 "javascript:void(0);"
。这样,单击链接除了 click
事件中指定的内容外,不执行任何操作。
作为旁注,我会将请求的路径从 /app/delete/:testId
更改为 /app/:testId
.正如你所说的那样,现在的方式是多余的DELETE /app/delete/1
.更 RESTful 的方法是 DELETE /app/1
.
相关文章:
- delete关键字在全局变量上的不同行为
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- document.applet.method在Mounatin Lion上抛出safari 6+JDK7异常
- 当method=post时,jQueryAjax返回404
- 调用laravel{{action(Controller@method}}通过传递vue.js数组中的变量
- $http.delete回调未在基本CRUD应用程序中启动
- strongloop script.js run find in before delete方法:如何同步运行异步方法
- 为什么delete关键字的作用与预期相反
- Java eqivalent method of “splice(a,b,..)“在 JavaScript 方法中
- Jquery onclick delete i++
- JavaScript Loop to setData method
- Extending jQuery.fn.method
- jquery ajax delete 404 error
- Firebug 不推荐将“delete”运算符应用于非限定名称
- Javascript - jQuery preventDefault method
- 如何显示Ajax Get-Method中的数据
- Javascript method win.validate();
- fine uploader uploadStoredFiles method
- jQuery deferred method and ajax beforeSend()
- NodeJS - jQuery DELETE Method