Возврат данных с использованием ColdFusion и jQuery Ajax

Я делаю запрос к файлу 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 ответ

Решение

Пусть ваш 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 в браузере и просмотрите исходный код.

Другие вопросы по тегам