У меня есть сценарий ниже, а при загрузке страницы появляется сообщение об ошибке: Cannot read property 'length' of undefined
, поэтому я исследовал ошибку и обнаружил, что запрос AJAX не был выполнен. Если я выполняю тот же код в консоли браузера, скрипт работает нормально. Что случилось с моим кодом?Неопределенный ответ ajax при загрузке страницы
<script>
function getCitiesList() {
var country_id = '189';
return $.ajax({
type: 'get',//тип запроса: get,post либо head
url: '/countries/' + country_id + '/cities' + "&authenticity_token=" + AUTH_TOKEN,
});
}
function getCitiesList2() {
var bla = getCitiesList();
console.log(bla['responseJSON']);
var i = 0;
var data = [];
while (i < bla['responseJSON'].length) {
data[i] = {};
data[i]['id'] = bla['responseJSON'][i]['id'];
data[i]['text'] = bla['responseJSON'][i]['title'];
i++;
}
console.log(data);
}
$('#city').select2({
data: getCitiesList2(),
width: "100%"
});
</script>
Что он печатает с -console.log (бла [ 'responseJSON']), я полагаю, ваш ответ приходит позже, и код в getCitiesList2() выполняет первую (без ответа) – urvashi
Предположим, что это «конечная запятая» после «AUTH_TOKEN»? В 'url: '/ countries /' + country_id + '/ cities' +" & authenticity_token = "+ AUTH_TOKEN,'. –