Fullcalendar没有发布有效的JSON

时间:2013-03-25 16:31:48

标签: jquery json fullcalendar

我只是无法弄清楚这段代码有什么问题,我所有的依赖项都加载了jquery 1.9.1 jquery UI 1.10.2,fullcalendar.min.js并且跟着这个例子就像它& #39;显示。

这是我的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
            }
        });

    });

在coldfusion后端页面,即期待JSON,我不断收到JSON解析失败,因此我检查了firebug以查看POST中发送的内容并且它没有发送有效的JSON数据。这是firebug在POST中显示的内容:

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

我在这里缺少什么?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

<强> SOLUTION:

好的,我希望这有助于其他人努力解决这个问题。感谢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”]#或您传递的任何其他参数。

获得查询后,您可以填充数组并将其发回,并填充日历。