Разное поведение скрипта на разных серверах.

Доброго всем.

Есть рабочий интернет магазин на шоп скрипте. Есть три абсолютно идентичные копии рабочего скрипта на трех серверах.

1. Основной рабочий сервер магазина с доменным именем и HTTPS.

2. Локальный сервер с копией, доменным именем магазина и HTTPS.

3. Тестовый сервер, вообще отдельное железо, в сети, с копией с другим доменным именем и без HTTPS

Сразу скажу, что на тестовом сервере в скрипте и базе нет упоминания о доменном имени магазина.

на сервере 3 заходим в настройки плагина оплаты, пытаемся что то изменить и сохранить. Но ничего не происходит. Не перегрузка страницы, ни выброса ошибки в консоль разработчика. Но если выйти и снова зайти в настройки или обновить страницу, видим что изменения сохранены.

На серверах 1 и 2, сохранение настроек плагина проходит штатно. Станица возвращается к списку способов оплат. Все изменения сохраняются.


Стал разбираться. И выяснилось что при сохранении вызывается метод paymentPluginSave из wa-apps/shop/js\settings/payment.js в аргумента data приходит не json строка. Вернее к json строке подмешивается вывод кода, который был вставлен предыдущим нерадивым программистом в setting.php плагина.

Но вопрос сейчас не об этом.

Почему на серверах 1 и 2 не происходит ошибок разбора json, а на сервере 3 срабатывает fail с ошибкой parsererror json (разбор json)?

Какие мысли? 

2 ответа

  • 0
    Алексей Webasyst 23 сентября 2021 08:59 #

    "три абсолютно идентичные копии рабочего скрипта" Скрипта или всего фреймворка?

    Потому что скрипт может быть идентичный, но он не работает один - если у вас в любом из файлов, который использует плагин оплаты будет BOM или еще лишние символы, то они будут мешаться с данными скрипта.

    Самый частый случай когда есть BOM - можете через скрипт https://github.com/emrahgunduz... проверить и исправить лишние файлы.

  • 1
    Markus 23 сентября 2021 09:26 #

    Скрипта или всего фреймворка?

    Я же выше написал, копия всего магазина. Фреймворк конечно же.

    И опять я выше писал.

    Вернее к json строке подмешивается вывод кода, который был вставлен предыдущим нерадивым программистом в setting.php плагина.

    т.е. BOM в данном случае не причем. И да я проверял файлы на BOM, знаю о таком. 

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите