FullCalendar 客户端事件发送到 Laravel 控制器
Posted
技术标签:
【中文标题】FullCalendar 客户端事件发送到 Laravel 控制器【英文标题】:FullCalendar clientEvents sending to Laravel Controller 【发布时间】:2016-03-27 21:10:42 【问题描述】:我正在尝试将我的 FullCalendar 事件列表发布到 php 控制器。 ajax 发送和接收工作正常,就像我为事件放置 console.log 时一样,它正确显示了事件。
不,这是我的事件数组:var events = $('#calendar').fullCalendar( 'clientEvents');
这是通过这个事件$("#save").click(function (e)
发送的
问题: 无论我在控制器中放入什么调试或读取 Input::all 数据或从 ajax 发送的特定 Input->get('events'),我都会在控制台中收到错误:
`too much recursion with about a hundred of n.fn.extend() below it.
阿贾克斯:
$("#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 请求,所以会在控制台中显示结果。
【问题讨论】:
【参考方案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);
我试过这个,在这个之后发送数组,它会尽可能干净。
【讨论】:
以上是关于FullCalendar 客户端事件发送到 Laravel 控制器的主要内容,如果未能解决你的问题,请参考以下文章