У меня проблема с реализацией AJAX в моей форме для связывания выпадающих списков. Я использую ColdFusion (файл CFC) для получения результатов запроса. Функция работает, и я получаю результаты в формате JSON:
[ { "ID" : "APEX",
"VALUE" : "Apex (not defined)"
},
{ "ID" : "AVI",
"VALUE" : "Plane (not defined)"
},
{ "ID" : "TRAIN 1",
"VALUE" : "Train 1st class"
},
{ "ID" : "VOIT",
"VALUE" : "Car"
},
{ "ID" : "ZERO",
"VALUE" : "Cost 0 (not defined)"
}
]
Я не знаю, является ли этот JSON правильным для использования в сценарии jquery.
В сценарии JQUERY функция success
не извлекает эти результаты, а console.log(result)
отображает "undefined". Если я попытаюсь сделать console.log(result.length)
, появится ошибка.
В Firebug я вижу, что запрос был выполнен, а ответом является JSON ниже.
Мой сценарий JQuery в моем файле CFM:
$().ready(function() {
$.ajax({
type: 'GET',
url: 'transport.cfc',
data: {
method: 'getTransports',
CITY_TO: 'LUX',
CITY_FROM: 'UWP'
},
dataType: 'json',
contentType: 'application/json',
success: function(result) {
var select = $("##transp");
select.empty();
select.append(
new Option('Select transport', '-1')
);
console.log(result) // displays "undifined"
/* GENERATES BUG
$.each(result, function(i, item) {
select.append(
new Option(item.ID, item.VALUE)
);
});*/
},
error: function(xhr, message) {
alert('ajax request failed');
console.log(xhr, message);
}
});
});
Я использую Jquery версии 1.1.2. Пробовал использовать последнюю версию, но результат тот же. Я также попробовал следующее решение, предложенное на форуме: «заменить json на jsonp». При этом результаты отображаются в консоли, благодаря console.log(result)
, но цикл each
не в порядке, и появляется ошибка «не удалось выполнить запрос ajax».
Я не знаю, как решить проблему, может ли кто-нибудь помочь мне решить ее?