Fullcalendar Angular / Node.JS http请求:TypeError:将循环结构转换为JSON(在Object.stringify处)

时间:2016-02-02 21:53:27

标签: angularjs node.js express fullcalendar

我试图通过http调用在fullcalendar drop事件上进行更新,但得到" TypeError:在Object.stringify(native)"将循环结构转换为JSON;错误。

这是客户端代码:

    drop: function() {
       $scope.schedule.tmpevents = $scope.schedule.events;
        $http.put('/api/schedules/updatetemp/' + $scope.schedule._id, $scope.schedule).success(function(){
          alert("temp schedule updated");
        });   
     },

服务器端代码:

exports.updatetemp = function(req, res) { 
  Schedule.update({_id: req.params.scheduleid}, {$set: {tmpevents: req.body.tmpevents}}, function(err, result){
    if (err) { 
      console.log(err); 
      return handleError(res, err); 
    } 
    return res.status(200).json(result); 
  });
};

当我在更新按钮单击后调用它时,相同的代码工作,它会更新临时事件,但是当我在函数结束时调用它时,但是当它从fullcalendar的drop事件中调用时它给出了这个错误。我感谢任何帮助..

1 个答案:

答案 0 :(得分:0)

错误的原因主要来自:

var a = { 'b': 'c' };
var c = { 'd': a };
JSON.stringify(c); //will cause error

Javascript引擎尝试将对象转换为字符串,并且越来越深入,无法结束该过程。

您应该找到递归发生的位置并将其删除(您应该在创建请求后将它们带回)或仅发送一些项目而不是整个事件。