gpt4 book ai didi

javascript - NodeJS - jQuery 删除方法

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:25 26 4
gpt4 key购买 nike

我试图在单击按钮时发送 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>

jQuery:

<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

关于javascript - NodeJS - jQuery 删除方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36119876/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com