我正在尝试将我的FullCalendar事件列表发布到PHP控制器。 ajax发送和接收正常工作,就像我为事件安装console.log一样,它正确显示事件。
这里没有我的事件数组:var events = $('#calendar').fullCalendar( 'clientEvents');
通过此活动发送的内容$("#save").click(function (e)
问题: 无论我在控制器中调试或读取输入::所有数据或从ajax发送的特定输入&gt; get(&#39; events&#39;),我都会在控制台中收到错误:< / p>
`too much recursion with about a hundred of n.fn.extend() below it.
Ajax:
$("#save").click(function (e) {
e.preventDefault();
var events = $('#calendar').fullCalendar( 'clientEvents');
$.ajax({
url: "/admin/m/submit",
headers: {
'X-CSRF-TOKEN': $('#crsf').val()
},
type: "GET",
contentType: "application/json",
data: {events:events},
dataType: "json",
success: function(response){
if (response['state']===0)
toastr.error('erreor');
},
error : function(e){
console.log(e.responseText);
}
});
});
控制器:
$d= Input::all();
dd($d['events']);
return response()->json(['state'=>0],200);
dd是laravel的调试器,因为这是一个ajax请求,它将在控制台中显示它的结果。
答案 0 :(得分:1)
如果您只是打开任何浏览器调试器,您发送的OBJECTS事件数组太递归了,您会看到它包含真正未使用的人员。您的代码与错误无关,但发送类似的事件。
为此,我的解决方案是创建另一个只吸引所需人员的阵列:
var events = $('#calendar').fullCalendar( 'clientEvents');
var fE = [];
$.each( events, function( key, value ) {
fE.push({
id : value._id,
Item : [{
title : value.title,
start : value.start._d,
end : value.end._d}]
});
});
console.log(fE);
我试过这个,在此之后发送数组,它会尽可能干净。