У меня есть локальный сайт разработчика, работающий на http://mysite.local/ (это админ-сайт Django с установленным Grappelli , если это уместно).
Сайт администратораоткрывает всплывающее окно для некоторых операций (например, с помощью showRelatedObjectLookupPopup()
)
Из-за предыдущих аналогичных проблем с той же политикой origin-origin (в процессе работы сайт администратора загружает некоторые URL-адреса из домена CDN, что может вызвать его) у нас есть JS-функция «нормализатора», которая явно устанавливает:
document.domain = "mysite.local";
как в родительском, так и во всплывающем окне при загрузке страницы.
Во всплывающем окне содержится ссылка с обработчиком onclickкоторая запускает функцию JS в родительском объекте:
onclick="opener.dismissRelatedLookupPopup(window, '422'); return false;"
Щелчок по этой ссылке в Chrome или FF приводит к аналогичной ошибке браузера:
В доступе запрещено свойство "dismissRelatedLookupPopup" вобъект перекрестного происхождения
или
Заблокирован кадр с источником "http://mysite.local" от доступа к кадру перекрестного происхождения.
Как всплывающие, так и открывающие URL-адреса разделяютПротокол, домен и порт.
Это проблема только локального домена.На сайтах dev / uat / production (т. Е. Dev.mysite.com), для каждого из которых домен установлен как супердомен mysite.com с помощью указанной выше функции нормализатора, всплывающее окно может успешно вызвать функцию JS вparent.
Что мешает ему в локальном домене?Что я пропустил?