javascript - 将 angularjs 应用程序嵌入另一个 angularjs 应用程序

标签 javascript angularjs iframe grafana

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

我也尝试过使用 $http 获取 grafana html(这样我可以设置我的 jwt header )但是 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 上设置 header 吗?我也尝试过只使用 grafana 的 html 作为模板,但正如我之前所说,他们的引导似乎无法在另一个应用程序中工作。

最佳答案

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

$.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))
    }
});

关于javascript - 将 angularjs 应用程序嵌入另一个 angularjs 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27512468/

相关文章:

javascript - 为什么它显示为未定义/NaN?

javascript - AngularJS 智能表全局配置实现

javascript - Angular JS/Angular Material。如何在单击时验证复选框组?

java - 使用 Google OAuth2 授权服务器保护 Spring RESTful API

javascript - Jquery ui 选项卡仅在单击时加载 iframe

javascript - 使用 JavaScript 和 Regex 从 URL 中提取 1 个特定数据

javascript - 如何在启动 webdriver 实例之前通过命令行传递conf.js中的deviceName

ios - Ionic 应用程序覆盖 iOS 9.1 中的 iPhone 状态栏

javascript - 如何将 iframe 内的页面重定向到另一个页面,但我们必须留在 iframe 中

html - CSS 规则调整 iframe 宽度但不调整高度