我正在向查询数据库的cfc文件发出请求。我将这些结果存储在结构,数组或其他方式中吗?根据我存储和返回结果的方式,我如何处理jQuery的各个部分? 我尝试将结果存储在一个数组中,只显示其中一个结果,这样做无效:
$.ajax({
type: "POST",
url: "/ajax/ajax_test.cfc?method=ajaxTest",
data:"field1=17",
success: function(response) {
var r=response;
$(".cat_vid_subContainer").empty();
$(".cat_vid_subContainer").html(r.DATA[2]);
}
});
答案 0 :(得分:9)
让您的CFC将数据作为JSON返回,并修改您的ajax请求以期待JSON。
假设CF8 +
要让您的方法返回JSON,只需附加一个新的查询字符串名称/值对“returnformat = json”。
要让你的ajax期望接收json,只需将“dataType:'json'”添加到ajax函数中。
$.ajax({
type: "POST",
dataType: 'json',
url: "/ajax/ajax_test.cfc?method=ajaxTest&returnformat=json",
data:"field1=17",
success: function(response) {
var r=response;
$(".cat_vid_subContainer").empty();
$(".cat_vid_subContainer").html(r.DATA[2]);
}
});
如果你的CFC正在返回一个数组,那么jQuery会将JSON数组反序列化为一个javascript数组,你可以像现在一样访问它的元素。
注意,关键是您的CFC只返回JSON。如果您要返回调试信息,或者在JSON之前有一堆空格,jQuery将无法对其进行反序列化。使用Firebug或其他类似工具来验证返回的JSON的质量。或者,只需使用浏览器请求URL并查看源。