5

我正在尝试将 grafana 嵌入到我的 angularjs 应用程序中。我可以使用简单的 iframe 轻松完成此操作,但我的应用程序使用 jwt 进行身份验证,我找不到为 iframe 设置标头的方法。我已经确认当我使用基本 iframe 关闭身份验证时它可以正常工作,但我需要启用它才能在生产中使用。

我也尝试过使用$http来获取 grafana html(这样我可以设置我的 jwt 标头),但是 js 似乎无法使用这种方法工作。我认为它与引导有关,因为它们手动引导。

//iframe
<iframe id="grafana" layout-fill flex></iframe>

//controller
  $http.get('/grafana/dashboard').then(function(response) {
      var iframeDocument = document.getElementById('grafana').contentWindow.document
      iframeDocument.open('text/html', 'replace')
      iframeDocument.write(response.data)
      iframeDocument.close()
  })

还有其他方法可以在 iframe 上设置标题吗?我也尝试使用 grafana 的 html 作为模板,但正如我之前所说,他们的引导似乎在另一个应用程序中不起作用。

4

1 回答 1

0

你可以这样尝试,它应该可以工作:

$.ajax({
    type: "GET", 
    url: "/grafana/dashboard",
    contentType: "application/json",
    beforeSend: function(xhr, settings){
            xhr.setRequestHeader("some_custom_header", "foo");},
    success: function(data){
        $("#output_iframe_id").attr('src',"data:text/html;charset=utf-8," + escape(data))
    }
});
于 2016-08-18T05:51:10.377 回答