г. Санкт-Петербург
Войти
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Заказать звонок
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности

RSS
Яндекс.Карты на сайте 1С:Битрикс, Не отображается Яндекс.Карта на странице.
 
Не отображается карта на странице или в инфоблоке.

На странице, на которой должна отображаться карта, вызовете консоль через F12.

Если в консоли отображается
ошибка
Цитата
Mixed Content: The page at '.........' was loaded over HTTPS, but requested an insecure script 'http://api-maps.yandex.ru/.......'. This request has been blocked; the content must be served over HTTPS.
то это решение должно вам помочь.

Ошибка Mixed Content означает то, что вся страница загружается через https, а запрос к api Яндекса производится через http, тем самым этот запрос блокируется, карта не загружается.

Решение:

В файле /bitrix/components/bitrix/map.yandex.system/component.php нужно удалить строчку :

Код
$scheme = (CMain::IsHTTPS() ? "https" : "http");

Далее ниже ищем строку

Код
$arResult['MAPS_SCRIPT_URL'] = $scheme.'://'.$host.'/'.$arParams['YANDEX_VERSION'].'/?load=package.full&mode=release&lang='.$arParams['LOCALE'].'&wizard=bitrix';

и заменяем $scheme.'://'.$host.'/' на '//api-maps.yandex.ru/' . В результате должна получиться строка вида:

Код
$arResult['MAPS_SCRIPT_URL'] = '//api-maps.yandex.ru/'.$arParams['YANDEX_VERSION'].'/?load=package.full&mode=release&lang='.$arParams['LOCALE'].'&wizard=bitrix';

Сохраняем изменения, обновляем проблемную страницу со сбросом кэша и всё работает :)

Component.php - оригинальный файл.
Component_changed.php - изменённый.
Изменено: Fobostt - 24.02.2021 17:49:20 (Прикрепил файлы)