如何使用带有标头的POST加载iframe

时间:2019-03-27 08:58:17

标签: javascript ajax post iframe header

我需要将网页加载到iframe中。网页服务器由Open ID Connect保护,并且需要对承载令牌进行授权。对于要呈现的页面,还需要通过服务器发送数据。响应的内容也有一些JavaScript。 iframe src只允许使用一个GET方法提供不提供我们想要的内容的网址。

因此,总而言之,我需要:

  • 使用POST将网页加载到iframe中
  • 在Authorsation标头中包含令牌。
  • 将页面加载到iframe中后,加载javascript

1 个答案:

答案 0 :(得分:0)

我采用的方法是使用AJAX发布来加载页面html和JavaScript的内容。获得内容后,我们便将内容写入iframe contentwindows。 我发现有其他替代方法: -使用表格发布。这不允许将令牌包含在授权标题中 -使用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/