Как загрузить iframe используя POST с заголовком - PullRequest
0 голосов
/ 27 марта 2019

У меня было требование загрузить веб-страницу в iframe. Сервер веб-страницы защищен Open ID Connect и требует авторизации токена на предъявителя. Есть также данные, которые необходимо отправить через сервер для отображения страницы. Содержание ответа также имеет некоторый JavaScript. Iframe src позволяет иметь только один URL, который использует метод GET, который не предлагает того, что мы хотели.

Итак, в общем, мне нужно:

  • Загрузка веб-страницы в iframe с использованием POST
  • Включить токен в заголовок Authorsation.
  • Загрузка JavaScript после загрузки страницы в iframe

1 Ответ

0 голосов
/ 27 марта 2019

Подход, который я выбрал, заключался в том, чтобы использовать пост AJAX для загрузки содержимого страницы HTML и JavaScript.Как только у меня есть контент, мы записываем его в окна контента iframe.Есть альтернативный подход, который я рассмотрел в: - Использование формы сообщения.Это не позволяет включать токен в заголовок авторизации - используя метод jQuery html.Это не вызывает iframe для загрузки HTML.Так что JavaScript на странице возврата не работает.

Рабочий пример: https://jsfiddle.net/duongthaiha/wmLsrfo0/52/

Вот фрагмент кода:

function loadHTMLToIframe(data) {
        alert(data);
        var iframe = document.getElementById('targetIframe');
        var iframedoc = iframe.document;
        if (iframe.contentDocument)
            iframedoc = iframe.contentDocument;
        else if (iframe.contentWindow)
            iframedoc = iframe.contentWindow.document;

        if (iframedoc){
            // write content to the iframe
            iframedoc.open();
            iframedoc.writeln(data);
            iframedoc.close();
            //page loaded at this point
        } else {
            alert('Fail to get the content windows');
        }
    }

Ссылка: http://thinkofdev.com/javascript-how-to-load-dynamic-contents-html-string-json-to-iframe/

...