【问题标题】:Issue with rendering page after performing delete function执行删除功能后渲染页面出现问题
【发布时间】:2016-07-13 11:13:08
【问题描述】:
exports.deleteItem = function (req, res)
{
    var query = req.params.id;
    var cart = req.session.items;
    var index;

    _.each(cart,function (ticket)
    {
        if(ticket.id === query)
        {
           index = cart.indexOf(ticket);
            cart.splice(index,1);
        }
        return res.redirect(303, '/cart');
    });
};

我在我的路由中使用这个函数来执行删除操作。它适用于我列表中的前几项,然后突然停止并给我错误“发送后无法设置标题。”

$(document).ready(function() {
    $('.delete-from-cart').click(function(event)
    {
        $target = $(event.target);
        $.ajax({
            type: 'DELETE',
            url: '/cart/remove/' + $target.attr('data-item-id'),
            data: {
                _csrf: $target.attr('data-csrf')
            },
            success: function(response)
            {
                $target.parent().parent().remove();
                Materialize.toast('Ticket Removed', 4000);
                window.location.href = '/cart';
            },
            error: function(error)
            {
                Materialize.toast('Error', 4000);
                console.log(error);
            }
        });
    });
});

【问题讨论】:

    标签: javascript node.js express handlebars.js


    【解决方案1】:

    发出了一个请求,这意味着应该发生一个响应。

    当您执行_.each 函数时,我猜如果有一个项目它会工作,但如果有多个项目就会失败?这是因为您在只允许一个响应时尝试发送多个响应。

    可以在这里找到一个很好的解释:Error: Can't set headers after they are sent to the client

    【讨论】:

      猜你喜欢
      • 2017-03-20
      • 2016-04-24
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多