【问题标题】:How to capture (initialisation) errors from a cross-domain iframe?如何从跨域 iframe 中捕获(初始化)错误?
【发布时间】:2019-08-27 05:09:30
【问题描述】:

我正在设置一个微前端解决方案,其中包含位于主窗口中的主集成应用程序和一堆带有服务的 iframe(子应用程序)。此服务是 SPA,但不是必需的,并且是从其他域提供的,但我可以控制它们。主应用程序需要从底层服务获取一些配置,它的工作方式如下 - 一对嵌入的 url 集成到 index.html 中,主应用程序知道要加载什么,然后它需要通过 postMessage API 等待事件,每个一个iframe。

这里的问题是主应用程序在初始化阶段不知道 iframe 内是否出现问题:服务因不同原因而关闭,应用程序未加载到 iframe 中,或者应用程序未加载到 iframe 中iframe 失去与服务器的连接或 JS 语法错误。检测到这一点的唯一方法就是使用超时,但这不是最好的用户体验。用户在看到错误之前会等待 30 秒。

是否有任何可能的方法可以从主窗口访问 iframe?可能是通过使用CORS? XHR 请求很清楚,但我没有找到有关 iframe 和 CORS 的信息。

【问题讨论】:

  • 您可以在 iframe 中更改哪些内容?一切,可能吗?
  • 我至少需要通过iframeEl.contentWindow.onerror 获取错误。

标签: javascript iframe cors cross-domain


【解决方案1】:

是否有任何方法可以从主窗口访问 iframe?

仅postMessage,您已经在使用。

可能是通过使用 CORS? XHR 请求很清楚,但我没有找到有关 iframe 和 CORS 的信息。

您不能使用 CORS 通过框架授予跨域访问权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    相关资源
    最近更新 更多