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
            }
        });

    });

在 Coldfusion 后端页面上,即期待 JSON,我不断收到 JSON 解析失败,所以我检查了 firebug 以查看 POST 中发送的内容,它没有发送有效的 JSON 数据。这是萤火虫在 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'
        });

    });

在这种情况下,根本没有发布任何内容。我在参数选项卡中看到:

_   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 回答