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