0

JSON データを返す URL を介してイベント データを取得しようとしています。同じコードが jQuery 1.3.2 では機能しますが、jQuery 1.4.1 では機能しません

FireBug コンソールでこのエラーが発生しています


a は定義されていません

for (var i=0; i

fullcalendar.js (369 行目)


FireBug jQuery 1.4.1 imposes strict JSON parsing の応答ヘッダーで確認できるので、JSON データを取得しています。これが問題かどうかはわかりません。

FullCalendar の例を apache webroot に保存しました。CakePHP AJAX URL「/myCake/calendars/get_events」の代わりにイベントに「/fullcalendar/examples/json-events.php」を使用すると、jQuery 1.4.1 で動作します。しかし、同じ JSON を生成する CakePHP の get_events.ctp ファイルの "/fullcalendar/examples/json-events.php" に同じコードを含めると、jQuery 1.4.1 で同じエラーが発生します。

誰かが同じ問題に遭遇し、解決策または回避策を見つけた場合は、経験を共有すると非常に役立ちます.

4

2 に答える 2

0

私の問題は、jquery 1.4.1+ が JSON で単一引用符を受け入れないことだったので、簡単に修正できましたが、生成された JSON を変更できる立場にいないと思いますか?

Arshaws の例は非常にうまく機能します (すばらしいプラグインを提供してくれた Arshaw に感謝します :) )。または、jquery-json プラグインを使用して、json 応答を安全な方法で評価できます。

于 2010-03-18T13:23:46.777 に答える
0

jquery 1.4.1 が厳密な json ルール ( http://yehudakatz.com/2010/01/15/jquery-1-4-and-malformed-json/ ) を適用しているように聞こえます。それがエラーが発生している理由です。fullcalendar.js のその行は、フィードを解析する場所なので、理にかなっています。firebug で json を見て、すべての文字列が二重引用符で囲まれているかどうかを確認します。そうでない場合、これは間違いなくあなたの問題です。

Cakephp にはあまり詳しくありませんが、イベントを関数として簡単にハックしたい場合は、次のようなことを行います...

$('#calendar').fullCalendar({
    events: function(start, end, callback) {
        $.getJSON('yourfeed.php', { start:start, end:end }, function(data) {
             callback(eval("(" + data + ")"));
        });
    }
});
于 2010-02-26T07:58:20.900 に答える