Клуб Яндекс.Поиска для сайта

Проблема с URI, не работает поиск

Cайт в cp1251

У меня есть мини форма поиска по сайту, при нажатии меня перекидывает на страницу http://lubernet.ru/id/151/?searchid=1863565&text=%EF%EE%EB%E8%EA%EB%E8%ED%EA%E0 и поиск ничего не выдает. Начал изучать, понял, что он не может разобрать text:

Ya.Site.queryParams

Object {searchid: 1863565}

 

Если пытаться подменить этот параметр, то ошибка происходит дальше, в момент поиска. Уходит запрос с параметрами

 

....

topdoc:http://lubernet.ru/id/151/?searchid=1863565&text=%EF%EE%EB%E8%EA%EB%E8%ED%EA%E0

...
text:%D0%BF%D0%BE%D0%BB%D0%B8%D0%BA%D0%BB%D0%B8%D0%BD%D0%BA%D0%B0

....

 

 

У вас очевидно стоит проверка что они должны соответствовать. Как быть?

 

 

3 комментария
Елена Першина
28 января 2016, 00:51

Добрый день! Не удалось воспроизвести ошибку, поиск выдает результаты: https://yadi.sk/i/Csy9AMBvgemY8  

Можете подробнее описать, какая версия браузера, какой запрос?

гугл хром 42.0.2311.152

проблема была в том что данные из формы уходили в формате cp1251, и скрипт при разборе GET параметров пропускал параметры в кодировке cp1251, в итоге я решил проблему так - отправляю POST запрос, он конвертируется в utf-8 и перенаправляется на страницу с поиском, в целом это решело проблему.

повторить проблему можно банально сделав страницу в cp1251 и заполнить там форму (которая не с помощью вашего скрипта создается)

 

PS: было бы здорово эти параметры передавать через JS, чтобы вообще уйти от разбора урл, тогда бы это позволило делать красивые url например вместо

http://lubernet.ru/id/151/?searchid=1863565&text=поиск

делать 

http://lubernet.ru/id/151/поиск/

Елена Першина
28 января 2016, 00:51

Спасибо, ясно. Постараемся учесть это при дальнейшей разработке.