如何在 Ionic 框架中显示带有 iframe 的 HTTPS 页面?

How to display a HTTPS page with an iframe in Ionic framework?

我的 Ionic 应用程序中有一个页面在其中显示 WebView(带有 iframe),问题是它仅在正常 HTTP 网页时才能正常工作,它几乎不能与任何 HTTPS 一起工作Google、Twitter 等页面。由于某种原因,似乎在应用程序中工作的唯一 HTTPS 页面是 https://www.httpsnow.org/

代码行很简单:

<iframe src="https://www.example.com/" height="400px" width="350px"></iframe>

我需要在我的应用程序中显示 HTTPS WebView,最好不必使用 Cordova 的 inappbrowser。有没有办法用 iframe 或其他方式做到这一点?

大多数大型组织,包括 Google、Twitter 等,都将 X-Frame-Options header 设置为 SAMEORIGIN 以防止框架,因为它在过去。

https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options

出于安全原因,这不是您可以覆盖的内容。

您不能在 iframe 上设置 X-Frame-Options。这是由您请求资源的域设置的响应 header。

尝试在源域中添加 Cross-origin-allow 以接受所有域请求。

不使用 iframe,而是重定向用户以在他们的浏览器上使用您的 link,而不是从应用程序(对用户不友好)。

我们在连接到 Django 框架聊天机器人引擎后端的聊天机器人离子应用程序中遇到了类似的问题。对于这样做是安全的视图,我们通过使用以下装饰视图解决了这个问题:

@xframe_options_exempt
这会从响应 headers.[= 中删除 X-Frame-Options 12=]

Django 文档信息在这里:https://docs.djangoproject.com/en/3.0/ref/clickjacking/#setting-x-frame-options-for-all-responses

还有其他方法可以更安全地解决此问题。