2016-07-13 27 views
0
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); 
      } 
     }); 
    }); 
}); 

回答

0

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

当你执行_.each函数时,我猜测它是有效的,如果有一个项目,但失败时有多个?这是因为您只有一个被允许时才会发送多个回复。

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