我正在尝试通过 http 调用对全日历删除事件进行更新,但收到"类型错误:在 Object.stringify (本机(将循环结构转换为 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 事件调用时,它会发出此错误。我感谢任何帮助..
错误的原因基本上来自以下方面:
var a = { 'b': 'c' };
var c = { 'd': a };
JSON.stringify(c); //will cause error
Javascript引擎试图将对象转换为字符串,并且越来越深入,而不可能结束该过程。
您应该找到发生递归的位置并删除它们(您应该在创建请求后将它们恢复(或仅发送部分项目而不是整个事件。