我试图通过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事件中调用时它给出了这个错误。我感谢任何帮助..
答案 0 :(得分:0)
错误的原因主要来自:
var a = { 'b': 'c' };
var c = { 'd': a };
JSON.stringify(c); //will cause error
Javascript引擎尝试将对象转换为字符串,并且越来越深入,无法结束该过程。
您应该找到递归发生的位置并将其删除(您应该在创建请求后将它们带回)或仅发送一些项目而不是整个事件。