Возможно ли открыть страницу с номером window.open
, чтобы позволить себя осмотреть крестообразным открывателем? (Это используется во внутренних приложениях, поэтому безопасность не является серьезной проблемой.) И если да, то как? Я попытался заменить все политики CORS и Same-Origin, которые я могу найти, и все еще получаю Access Denied
по всем свойствам дочернего окна.Когда страница открывается с помощью window.open, как открытая страница позволяет открывающему доступу к ее содержимому?
В частности, я пытаюсь использовать Internet Explorer 11
Headers
Они все заголовки, я пытался до сих пор
Access-Control-Allow-Origin: http://web1.corp.local
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma
Access-Control-Expose-Methods: GET,POST,OPTION,PUT,DELETE,HEAD
X-Content-Security-Policy: default-src *;script-src *
Content-Security-Policy: default-src *;script-src *
X-XSS-Protection: 0
X-Permitted-Cross-Domain-Policies: all
То, что я пытаюсь ...
Я хочу web1.corp.local
выполнить JavaScript на странице по web2.corp.local
. Я контролирую оба домена; Мне просто нужно web2
, чтобы сообщить обозревателю web1
, чтобы читать и исполнять вещи на web2
.
Запрос на http://web1.corp.local
Я пытаюсь вызвать функции JavaScript в открывшемся окне с открывалка.
document.domain = "corp.local";
var web2 = window.open('http://web2.corp.local');
web2.document; //Throw "Access Denied"
web2.MyApp; // undefined
Javascript на http://web2.corp.local
document.domain = "corp.local";
var myapp = window.MyApp = {
doWork: function() {
alert('Hello World!');
}
};
Примечание: У меня есть решение, используя IFrame прокси и window.postMessage
, но приложение, размещенную на web2
не работает правильно с в плавающем фрейме.
Обновление: Проблема заключалась в том, что две страницы не использовали document.domain
, и я пропустил исключение в открывшемся окне.
Я думаю, что вы имели в виду что-то другое посредством межсайтового скриптинга, чем на самом деле. Вы имели в виду междоменные запросы? –
нет, я имею в виду межсайтовый скриптинг. Мне нужно сделать запрос из сеанса клиента, представленного на 'http: // web1.corp.local', на' http: // web2.corp.local'. Я использовал 'window.open (...)' из 'web1', но независимо от того, что я делаю, все свойства этого открытого окна представлены как' access denied' –
(И я не думал, что CORS разрешит это, но это было лучшее, что я мог найти.) –