0

このコードの何が問題なのかわかりません。すべての依存関係に jquery 1.9.1、jquery UI 1.10.2、fullcalendar.min.js をロードし、示されているとおりに例に従っています。

これが私のajax呼び出しです:

$(document).ready(function() {

        $('#calendar').fullCalendar({
            events: {
                type: 'POST',
                url: 'mypage.cfc',              
                data: JSON.stringify({ param_one: "test", param_two: "testing"}),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: function() {
                    //alert('there was an error while fetching events!');
                },
                color: 'yellow',   // a non-ajax option
                textColor: 'black' // a non-ajax option
            }
        });

    });

JSON を想定している Coldfusion バックエンド ページで、JSON 解析エラーが発生し続けたので、firebug をチェックして、POST で何が送信されているかを確認しましたが、有効な JSON データが送信されていません。POST での firebug の表示は次のとおりです。

0=%7B&1=%22&2=p&3=a&4=r&5=a&6=m&7=_&8=o&9=n&10=e&11=%22&12=%3A&13=%22&14=t&15=e&16=s&17=t&18=%22&19=%2C&20=%22&21=p&22=a&23=r&24=a&25=m&26=_&27=t&28=w&29=o&30=%22&31=%3A&32=%22&33=t&34=e&35=s&36=t&37=i&38=n&39=g&40=%22&41=%7D&start=1361685600&end=1365310800

また、問題を絞り込めるかどうかを確認するために、コードを完全に削除しようとしたので、疲れました。

$(document).ready(function() {

        $('#calendar').fullCalendar({
            events: 'mypage.cfc'
        });

    });

この場合、何も投稿されません。paramsタブにこれが表示されます:

_   1364228830548
end 1365310800
format  json
start   1361685600

ここで何が欠けていますか?何か案は?

4

1 に答える 1

0

解決:

わかりました、これが他の誰かがこれに苦労しているのを助けることを願っています. 私を正しい方向に向けてくれたganeshkに感謝します。fullcalendar のドキュメントはまばらです。jquery コードは JSON データを送信するはずだと思っていましたが、そうではありません。文字列を送信するだけです。

コールドフュージョン側で文字列をキャプチャしたい場合は、次のようなものを使用できます。

        <!--- query string --->
        <cfset URLstring = getHTTPRequestData().content >

        <!--- local structure --->
        <cfset cfData = StructNew()>
        <!--- loop our query string values and set them in our structure --->
        <cfloop list="#URLstring#" index="key" delimiters="&">
            <cfset cfData["#listFirst(key,'=')#"] = urlDecode(listLast(key,"="))>
        </cfloop>

次に、SQL WHERE ステートメントのコードで #cfData["start"]# または渡すその他のパラメーターを使用できます。

クエリを取得したら、配列にデータを入力して送り返すと、カレンダーにデータが入力されます。

于 2013-03-25T22:13:14.190 に答える