laimas, проверил, отправил простой get, ответ получил в виде html кода запрашиваемой страницы. Во общем запросы проходят. Но как это может помочь получить доступ к iframe?
|
Значит браузер накладывает ограничения на iframe, и в его контексте заголовки не решат проблемы. Знаю, что в IE можно добавить домен в доверенные, и заголовков не потребуется. Не знаю как программно это обойти, в сети значит есть описание проблемы и ее обхода. Плохо то, что у каждого браузера свое понимание, и надо полагать и решений потребуется не одно.
|
laimas, а вариант который предлагал ruslan_mart нельзя использовать? Как по мне подход вполне действенный, просто я не до конца понимаю как с ним работать
|
Цитата:
|
IFrame:
(function() { var actions = { getContent: function() { return document.documentElement.innerHTML; } }; window.addEventListener('message', function(e) { if(e.origin === 'http://bistro-obed.ru') { var data = JSON.parse(e.data); if(data.action in actions) { data.result = actions[data.action](); parent.postMessage(JSON.stringify(data), '*'); } } }); })(); Основной сайт: (function() { var frame = document.getElementById('include_content'); var callbackList = { handleContent: function(result) { var contents = (new DOMParser).parseFromString(result, 'text/html'); console.log(contents); } }; window.addEventListener('message', function(e) { if(e.origin === 'https://menu.food24h.ru') { var data = JSON.parse(e.data); if(data.callback in callbackList) { callbackList[data.callback](data.result); } } }); frame.addEventListener('load', function() { var data = { action: 'getContent', callback: 'handleContent' }; frame.contentWindow.postMessage(JSON.stringify(data), '*'); }); })(); |
Часовой пояс GMT +3, время: 05:28. |