2017-01-25 11 views
0

次はJQUERYカレンダーイベントソースのエラートラップ機能のものです。 1行のテキストファイルであっても、出力はカレンダーに表示されません。私はUNIXのタイムスタンプを含むいくつかの異なる日付形式を試しました。これはカレンダー3.1.0です。 V 1.5.4では、同じフィードが正しく動作します。カレンダーにJSONフィードが表示されない

応答ステータスが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"** 
] 
+3

投稿されたコードは、縮小されているように見えますが、正しくフォーマットされていません。読みやすいソースを投稿して正しくフォーマットすると、より多くの支援が得られます。 – Brian

+0

ポストに追加すると役立ちます:A.あなたのカレンダーの設定とB.あなたのAPIまたはあなたがGETと呼んでいるもの。 –

+0

カレンダー設定は基本的なもので、event: 'eventSource'が機能しなかったときにエラー処理関数を利用するために行われたイベントソースのget呼び出し以外の設定は追加されていません。以前の – BMZ

答えて

0

テキストの書式には何か不具合があります。

メモ帳++に

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

あなたのサンプルデータを貼り付け、「エンコードANSIで」オプションを使用する場合、それは次のようになります。

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

私は動いていたときので、私が最初に気づきました行の上にカーソルを置いたまま左右に動かすと、3回押して0から 'にしなければならず、カラムIDは増加し続けました。私は、このデータをfullCalendarを実行したときに

すると、コンソールにエラーが報告さも、私は奇妙な文字を疑う作って上のイベント、とのラインを指して

Uncaught SyntaxError: Invalid or unexpected token

ました。

これらの余分な文字を削除し、それをイベントソースとして使用すると、fullCalendarは正常に動作します。

解決策は、データを正しく生成していないものを修正することです。

+0

ここのコードは、エラーを表示するJSアラートポップアップからコピーされました。実際にカレンダーに送信されたときにデータ行に余分な文字は含まれません。データラインが編集パッドプロから保存されたテキストファイル内の唯一のものであっても表示されません。しかし、その行がイベント:ブロック内のページ自体に貼り付けられていると、エンコーディングは問題ではなく、問題をJQUERYがデータを返すこともできません。カレンダーのJQUERYはエラーを返します。貼り付けられたテキスト。返信いただきありがとうございます。 – BMZ

+0

これで、カレンダーとデータソースを定義するコードを表示することをお勧めします。元の質問に投稿したエラーは実際にはわかりません。内部的なjqueryコードの負荷です。有用な唯一のビットは応答テキストで、ここで私はエンコーディングエラーを検出しました。しかし、それが問題ではないと確信している場合は、イベントをページにハードコードするときに動作します。それは、サーバーの設定やデータに関連するものでなければなりません。問題を示すMCVE http://stackoverflow.com/help/mcveを作成してください。 – ADyson

+0

@BMZこれを解決しましたか? – ADyson

関連する問題