JoomShopping Search plus - непонятное поведение Ajax

02.04.2021 21:12
#1
vitaly2016
Joomshopping forum user no avatar
Name: Vitaly
14.06.2016
Posts: 27
Quote
JoomShopping Search plus - непонятное поведение Ajax

Сегодня приобрел на Вашем сайте модуль Search plus 1.9.3

До Search Plus работал обычный бесплатный Module Search (он и остается пока у меня на украинской версии сайта)

После установки Search Plus работает неправильно:
Первая попытка поиска уже на 1 введенном символе показывает абсолютно случайные товары, даже если в поиске вводить несуществующую фразу. На скриншоте я начал вводить слово NOTHING и мне сразу на букву N выдался список товаров.
Причем аякс выводит 12 результатов, несмотря на то, что я в настройках модуля установил 4.
Я пытался сбрасывать кеш Joomla, но всё равно выводится в аяксе 12.

Если я введу что-то существующее в названии, то первый запрос не покажет в Аяксе этих товаров. Например, я пишу Status.
В аяксе случайные товары, не отвечающие поисковой фразе.
Затем я нажимаю кнопку поиска, мне выдается обычный список найденных товаров Status, который выдает и бесплатный модуль.
После этого происходит следующее: я собираюсь набрать в поиске другое поисковое слов, тоже существующее, например Polistrap, так уже на первую букву "P" аякс мне выдает список товаров из предыдущего поискового запроса "Status"

Пробовал полностью отключать на сайте кеш, сбросывал кеш браузеров (пробовал в Chrome и Firefox) - модуль работает неправильно.

Итог: выдача Ajax совершенно непонятная. Только нажатие на кнопку выдает правильный результат поиска.
Прошу Вашей помощи.
 JoomShopping Search plus - непонятное поведение Ajax
module_search_plus_settings1.jpg


Joomla: 3.9.25
JoomShopping: 4.18.5
PHP: 7.3.27
MySQL: 5.7.33
Website Url: https://kozakplus.ua/ru

Last change: 02.04.2021 21:16
 
02.04.2021 22:00
#2
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25919
Quote
Aw: JoomShopping Search plus - непонятное поведение Ajax

Проблема в редиректе
https://kozakplus.ua/ru/products/ajaxsearch/?ajax=1
на
https://kozakplus.ua/ru/products/ajaxsearch?ajax=1

Уберите редирект.

 
02.04.2021 22:24
#3
vitaly2016
Joomshopping forum user no avatar
Name: Vitaly
14.06.2016
Posts: 27
Quote
Aw: JoomShopping Search plus - непонятное поведение Ajax

Странно, но я не создавал такого редиректа. Посмотрел в .htaccess, в админке, Компонененты->Перенаправления,
нет там ничего с "ajaxsearch"
Как еще может создаваться этот редирект?

Хотя вот вспомнил: у меня в htaccess есть несколько директив:
форсирование https, убирание "www" и убирание конечного слеша:

#### Force HTTPS and remove trailing / from files ####
## Turn on rewrite engine
RewriteEngine on

## Check if not directory and ends in /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
## If not a directory skip next RewriteRule
RewriteRule ^ - [S=2]

## Check if HTTPS and WWW
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [OR,NC]
RewriteCond %{https} off

## This RewriteRule skipped if URI was a directory
RewriteRule ^(.*)$ https://kozakplus.ua/$1 [R=301,L]

## This RewriteRule used if URI was a directory
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [S=1]
RewriteRule ^(.*)/$ https://kozakplus.ua/$1 [R=301,L]


Это из-за этого происходит указанный Вами редирект?


Last change: 02.04.2021 22:33
 
03.04.2021 12:10
#4
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25919
Quote
Aw: JoomShopping Search plus - непонятное поведение Ajax

да
## Check if not directory and ends in /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
## If not a directory skip next RewriteRule
RewriteRule ^ - [S=2]

 
03.04.2021 20:30
#5
vitaly2016
Joomshopping forum user no avatar
Name: Vitaly
14.06.2016
Posts: 27
Quote
Aw: JoomShopping Search plus - непонятное поведение Ajax

Большое Вам спасибо за подсказки.
Да, если убрать из .htaccess директивы, которые
удаляют конечный слеш, то AJAX работает.

Но мне НАДО на своем сайте убирать слеши для всего, кроме файлов
чтобы не было дублирования контента. Как известно, можно выбрать,
чтобы все ссылки "не файлы" были либо с конечным слешем либо без него.
В своё время я выбрал без слеша и Google так и проиндексировал.

Т.е. мне надо всё-таки убирать конечный слеш, но не задействовать это
правило для поиска ajax

Я перепробовал множество стандартных вариантов удаления слеша, но все
они конфликтовали с AJAX
И вот заработал такой:
##################################
#Remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^(.*)ajaxsearch(.*)$
RewriteRule ^(.*)/$ /$1 [L,R=301]
##################################
По Вашему мнению, такой вариант допустимый?

 


Copyrights MAXXmarketing GmbH. Alle Rechte vorbehalten
Durch die Nutzung dieser Website stimme ich zu, dass Cookies zur optimalen Gestaltung der Website sowie zur Analyse der Nutzung der Website verwendet werden. Weiterführende Informationen finden Sie hier. OK, einverstanden.