Я работал над требованием, которое включает в себя выборку / манипулирование сайтом данных, хранящихся в другом домене.Казалось, нет другого способа, кроме как включить CORS на другом сервере, чтобы я мог получать и изменять данные из другого домена.Однако это вызвало некоторые проблемы с приложениями Office 365. Мне пришлось использовать другой подход.
Подход заключается в использовании postMessage
для разговора со скрытым iframe
(не очень хороший подход, но я былнастаивал на его использовании) на странице, которая работает на целевом домене.Исходная страница публикует сообщение вместе с информацией о вызове REST для скрытого iframe
, который делает запросы от имени родительской страницы и использует postMessage
для возврата результатов.
Все работает нормально, кромекогда сайт используется на iPhone.Оказалось, что размещение alert
вызовов в скрипте, работающем внутри цели iframe
, заставляет его работать, но удаление вида вызовов alert
отключает цель iframe
от совершения этих сетевых вызовов между источниками.
Моя теория заключается в том, что из-за безопасности мобильного Safari, чтобы совершать вызовы из разных источников из iframe
, работающего в другом домене, пользователь должен дать свое согласие, по крайней мере, один раз взаимодействуя со встроенным iframe
.Это звучит правильно?