0
Answered

скажите почему не работает это код

Anonymous 4 years ago updated by Антон 4 years ago 8
$.ajax({ url: 'https://dadata.ru/api/v2/suggest/address',
type: 'POST',
dataType: 'json',
headers: {
"Authorization": "Token 08b2a2bb9eb5319303b434c6eff03ee6ec3c7f80",
"Content-Type": "application/json; charset=UTF-8",
"Accept": "application/json"
},
data: JSON.stringify({"query": $('#city').text()}),
success: function (response) {
var obj = jQuery.parseJSON(response);
alert(obj.suggestions.data.region_with_type);
}
});

Answer

Answer
Answered
response в обработчике success — это объект, а не текст. Поэтому parseJSON не отрабатывает. Вот пример работы с подсказками через аджакс: Получаем список подсказок через AJAX-запрос
Answer
Answered
response в обработчике success — это объект, а не текст. Поэтому parseJSON не отрабатывает. Вот пример работы с подсказками через аджакс: Получаем список подсказок через AJAX-запрос
да но вот это:
$.ajax({ url: 'https://dadata.ru/api/v2/suggest/address',
type: 'POST',
dataType: 'json',
headers: {
"Authorization": "Token 08b2a2bb9eb5319303b434c6eff03ee6ec3c7f80",
"Content-Type": "application/json; charset=UTF-8",
"Accept": "application/json"
},
data: JSON.stringify({"query": $('#city').text()}),
success: function (response) {
alert(response.suggestions.data.region_with_type);
},
});
выдает вот что:
Cannot read property 'region_with_type' of undefined


я понимаю что как-то неправильно пытаюсь выбрать регион из ответа, но пока не смог разобраться как это сделать, тем более там много ответов (много объектов подходящих под параметры) а как выбрать именно регион конкретного города тоже непонятно
response.suggestions — это массив. Можно брать его первый элемент:
var region = response.suggestions.length && response.suggestions[0].data.region_with_type || "";
console.log(region);
Только не всегда по названию города можно однозначно определить регион. Какой у вас сценирий использования, зачем нужны эти данные?
мне нужно по введенному городу определить край или область для последующего поиска по городам региона
может конечно правильно искать по диаметру например от координаты города, но это совсем не знаю как делать
Почему бы не дать возможность пользователю самому выбрать город? Область при этом вы получите автоматически: выбрать город с помощью подсказок.
дело в том что используется форма на плагине http://vitalets.github.io/x-editable/ (часть шаблона) и там нет поля для ввода значений input вернее есть но его добавляет сам плагин
Раз поле есть, значит на него можно навесить подсказки. Просто инициализируйте их после того, как плагин добавил поле на страницу (я так понимаю, это событие shown в плагине).