快速响应采取请求方法

时间:2014-08-17 17:41:56

标签: node.js http express

我试图从DELETE请求中获取Get响应

我使用Ajax制作DELETE,目前正在使用成功重定向。

$("#delete-account").click(function() {
    $.ajax({
        url: '/user',
        type: 'DELETE',
        success: function() {
            window.location='/user/new';
        },
        error: function(error) {
            console.log(error);
        }
    });
});

和我的快车路线

router.delete('/', pass.isAuthenticated, function(req, res) {
    User.remove({_id: req.user._id}, function(err){
        if(err) return console.log(err);
        req.flash('success', 'Your account has been deleted.');

        res.redirect('/user/new');   <----------- this redirects to DELETE(/user/new)

    });
});

重定向问题为DELETE响应。我尝试过设置req.method =&#39; get&#39;和res.method =&#39;得到&#39;以上。都没有工作。

有什么想法吗? : - /

1 个答案:

答案 0 :(得分:1)

由于这是一个ajax调用,因此在DELETE调用结束后,最好不要再从浏览器拨打电话了吗?通常重定向用于将浏览器重定向到新的URL,但由于这是ajax调用,浏览器不会被重定向到任何地方。

如果您需要服务器告诉重定向的位置,我建议删除的响应如下:

router.delete('/', pass.isAuthenticated, function(req, res) {
   User.remove({_id: req.user._id}, function(err){
    if(err) return console.log(err);
    req.flash('success', 'Your account has been deleted.');

    res.send('/user/new');   <----------- Return location of new page

    });
});

然后你的客户会这样做:

$("#delete-account").click(function() {
  $.ajax({
    url: '/user',
    type: 'DELETE',
    success: function(data) {
        window.location=data;
    },
    error: function(error) {
        console.log(error);
    }
 });

});