使用ColdFusion和jQuery Ajax返回数据

时间:2011-01-27 22:24:22

标签: jquery coldfusion cfc

我正在向查询数据库的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]);
    }
    });

1 个答案:

答案 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并查看源。