我只是无法弄清楚这段代码有什么问题,我所有的依赖项都加载了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
我在这里缺少什么?有什么想法吗?
答案 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”]#或您传递的任何其他参数。
获得查询后,您可以填充数组并将其发回,并填充日历。