日历不会显示JSON提要

时间:2017-01-25 22:25:49

标签: jquery ajax fullcalendar

以下内容来自JQUERY日历事件源中的错误陷阱功能。即使输出位于单行文本文件中,输出也不会显示在日历上。我尝试了几种不同的日期格式,包括UNIX时间戳。这是日历3.1.0。相同的Feed在V 1.5.4中正常工作。

即使响应状态为200且响应文本已完成,也会触发错误事件处理程序。日历功能之外的JQUERY AJAX GET正确加载数据。我还可以通过脚本检索数据并将其插入到事件:[]块中,它将显示在日历上。复制并粘贴到fullCalendar函数中的事件块时,数据也将正确显示。

[
  "readyState: 4",
  "getResponseHeader: function (a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b}",

  "getAllResponseHeaders: function (){return k?g:null}",

  "setRequestHeader: function (a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this}",

  "overrideMimeType: function (a){return null==k&&(o.mimeType=a),this}",
  "statusCode: function (a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this}",

  "abort: function (a){var b=a||x;return e&&e.abort(b),A(0,b),this}",
  "state: function (){return d}",

  "always: function (){return f.done(arguments).fail(arguments),this}",
  "catch: function (a){return e.then(null,a)}",

  "pipe: function (){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+\"With\"](this,e?[a]:arguments)})}),a=null}).promise()}",

  "then: function (b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError(\"Thenable self-resolution\");j=a&&(\"object\"==typeof a||\"function\"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()}",
  "promise: function (a){return null!=a?r.extend(a,e):e}",

  "progress: function (){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&\"string\"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this}",

  "done: function (){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&\"string\"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this}",

  "fail: function (){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&\"string\"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this}",

  **"responseText: [{'id':1,'title':'test','start':'2014-12-25T10:00:00','end':'2014-12-25T18:00:00','description':null}]",
  "status: 200",
  "statusText: OK"**
]

1 个答案:

答案 0 :(得分:0)

你的文字格式有点麻烦。

如果您粘贴样本数据

'end':‌​'2014-12-25T10:00:00‌​'

进入Notepad ++并使用“ANSI中的编码”选项,它看起来像这样:

'end':‌​'2014-12-25T10:00:00‌​'

我首先注意到,因为当我只是沿着光线向左/向右移动时,我不得不按3次从0到',并且当我这样做时,列ID不断增加。

然后,当我使用此数据运行fullCalendar时,报告的控制台错误是

  

未捕获的SyntaxError:无效或意外的令牌

指向上面有事件的行,这也让我怀疑是一个奇怪的角色。

如果删除这些额外字符,并将其用作事件源,则fullCalendar可以正常工作。

所以...解决方案是修复生成错误的数据。