1

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

1 回答 1

10

让您的 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 并查看源代码。

于 2011-01-27T22:42:19.963 回答