NodeJS - jQuery DELETE方法

时间:2016-03-20 21:33:20

标签: javascript jquery node.js

我正在尝试按下按钮发送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>

1 个答案:

答案 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