Как использовать 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.