0
Not a bug

Ограничить сектор поиска по адресу (возможно баг)

AlexT 3 years ago updated 3 years ago 10

Плагин работает, но ничего не выдает. Всегда пустой результат. Покопавшись в заголовках увидел, что вместе с моим ограничением на поиск адреса по Москве добавляется переменная locations_boost. Как я понял это мой адрес (кстати определяется не правильно, у меня Ростов-на-Дону, а выдается Саратов). Может ли это вызывать коллизию? Когда мы ограничились Москвой и locations_boost идет по Саратову?


<input id="delivery-address-text" />
<script type="text/javascript">
    $("#delivery-address-text").focusin(function () {
        $("#delivery-address-text").suggestions({
            serviceUrl: "https://suggestions.dadata.ru/suggestions/api/4_1/rs",
            token: "f76f0cc041cd3b8adce811efff8aae6359a27aa0",
            type: "ADDRESS",
            //count: 5,
            constraints: {
                // ограничиваем поиск (в тестируемом примере используется Москва)
                locations: {region: shop_app.city_name},
                deletable: true
            },
            /* Вызывается, когда пользователь выбирает одну из подсказок */
            onSelect: function (suggestion) {
                console.log(suggestion);
            }
        });
    })
</script>
Request Headers
POST /suggestions/api/4_1/rs/suggest/address HTTP/1.1
Host: suggestions.dadata.ru
Connection: keep-alive
Content-Length: 738
X-Version: 16.8.9
Origin: http://127.0.0.1:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36
Content-Type: application/json
Accept: application/json, text/javascript, */*; q=0.01
Authorization: Token f76f0cc041cd3b8adce811efff8aae6359a27aa0
Referer: http://127.0.0.1:8000/tmp
Accept-Encoding: gzip, deflate, br
Accept-Language: ru,en;q=0.8,en-US;q=0.6

---------------
Request Payload
{"locations_boost":[{"country":"Россия","region_fias_id":"327a060b-878c-4fb4-8dc4-d5595871a3d8","region_kladr_id":"2600000000000","region_with_type":"Ставропольский край","region_type":"край","region_type_full":"край","region":"Ставропольский","city_fias_id":"2a1c7bdb-05ea-492f-9e1c-b3999f79dcbc","city_kladr_id":"2600000100000","city_with_type":"г Ставрополь","city_type":"г","city_type_full":"город","city":"Ставрополь","fias_id":"2a1c7bdb-05ea-492f-9e1c-b3999f79dcbc","fias_level":"4","kladr_id":"2600000100000","capital_marker":"2","okato":"07401000000","oktmo":"07701000"}],"locations":[{"region":"Москва"}],"restrict_value":false,"query":" ","count":5}

Answer

Answer
Under review

Добрый день! Коллизий быть не должно. Пожалуйста, дайте ссылку на страницу, где воспроизводится проблема.


Код подключения выглядит нормальным, за исключением того, что плагин инициализируется внутри события focusin. Не надо так с ним :–)

Answer
Under review

Добрый день! Коллизий быть не должно. Пожалуйста, дайте ссылку на страницу, где воспроизводится проблема.


Код подключения выглядит нормальным, за исключением того, что плагин инициализируется внутри события focusin. Не надо так с ним :–)

Данные на странице могут меняться, по-этому решил сделать инициализацию в момент когда пользователь начал заполнять поле.


Страница на локалхосте. Что я могу еще проверить?

Повторно проверил, сейчас работает. Может быть было что-то с сервером?

С сервером все было хорошо :–)

Оказалось работает только москва, остальные города выдает пустоту:

Записал видео: https://youtu.be/QQh_pKbiFW0

Программный код без изминений.

Вы устанавливаете ограничение на поле region (locations: [{ region: "Ростов-на-Дону" }]), а Ростов-на-Дону — это город (city). Поэтому подсказок и нет. Либо ставьте ограничение на city, либо на kladr_id.

Понял, спасибо.

Было бы здорово для демонстрации ограничений региона/города сделать более простые примеры. Я разбирался минут 10 чтобы только понять что происходит в вашем скрипте.

Ну и документации вообще не смог найти.

А какой скрипт оказался сложным для понимания? Дайте ссылку, пожалуйста.

Документация: https://dadata.ru/suggestions/usage/

Подробности: https://dadata.ru/help/suggestions


http://codepen.io/dadata/pen/qADdb?editors=1010


В документации поле constraints я нигде не видел.