Разное поведение скрипта на разных серверах.
Доброго всем.
Есть рабочий интернет магазин на шоп скрипте. Есть три абсолютно идентичные копии рабочего скрипта на трех серверах.
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 ответа
"три абсолютно идентичные копии рабочего скрипта" Скрипта или всего фреймворка?
Потому что скрипт может быть идентичный, но он не работает один - если у вас в любом из файлов, который использует плагин оплаты будет BOM или еще лишние символы, то они будут мешаться с данными скрипта.
Самый частый случай когда есть BOM - можете через скрипт https://github.com/emrahgunduz... проверить и исправить лишние файлы.
Я же выше написал, копия всего магазина. Фреймворк конечно же.
И опять я выше писал.
т.е. BOM в данном случае не причем. И да я проверял файлы на BOM, знаю о таком.