Как использовать CORS для доступа к iframe
Когда пользователь печатает, мой сервер создает PDF файл, и я делаю это, чтобы отобразить диалоговое окно печати для PDF.
$('<iframe type="application/pdf"></iframe>').attr('src', url).load(function() {
var iframe = this;
setTimeout(function() { //Chrome PDF viewer shows "Loading..." forever otherwise
iframe.contentWindow.print();
$(iframe).remove(); //gc
}, 50);
}).appendTo('body');
Но теперь я размещаю PDF файлы на S3. Я получаю
Uncaught SecurityError: Blocked a frame with origin "https://localhost" from
accessing a frame with origin "https://my-bucket.s3.amazonaws.com".
Protocols, domains, and ports must match.
Я полагаю, мне нужно добавить CORS заголовки.
У меня
Access-Control-Allow-Methods: GET, HEAD
Access-Control-Allow-Origin: *
Что мне не хватает?
Ответы
Ответ 1
Paul - CORS не применяется при попытке программного доступа к контенту из iframe с перекрестным происхождением. Если вы хотите получить доступ к контенту из iframe в другом домене, вам нужно будет использовать API веб-сообщений (window.postMessage
и событие onmessage
) для связи между вашей страницей и iframe.