You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 6 Blazor Hybrid应用中允许iframe加载HTTP链接的方法

Blazor Hybrid中iframe加载HTTP资源的混合内容问题解决方案

方案1:将目标资源切换为HTTPS服务(推荐)

这是符合浏览器安全规范的根本解决办法。把你要加载的http://10.0.0.150:80/配置为HTTPS服务:

  • 给目标服务配置SSL证书(自签证书用于测试,正式环境用权威机构颁发的证书)
  • 将服务端口改为443(HTTPS默认端口),最终使用https://10.0.0.150/作为iframe的src。

方案2:将Blazor Hybrid应用改为HTTP启动

如果你的应用场景允许(比如内部测试环境),可以把自身的启动协议从HTTPS改成HTTP,避免混合内容冲突:

  1. 打开项目的launchSettings.json文件
  2. 修改applicationUrl为HTTP地址,比如:
"applicationUrl": "http://0.0.0.0/sungrow",
  1. 移除或注释掉HTTPS相关的配置项(如sslPort)。

方案3:配置WebView允许混合内容(仅限测试/内部环境)

针对不同平台的WebView组件,修改配置允许加载HTTP资源:

Windows(WebView2)

在BlazorWebView的初始化逻辑中,设置CoreWebView2允许混合内容:

protected override async Task OnInitializedAsync()
{
    await base.OnInitializedAsync();
    if (BlazorWebView.WebView is WebView2 webView2)
    {
        await webView2.EnsureCoreWebView2Async();
        webView2.CoreWebView2.Settings.IsMixedContentAllowed = true;
    }
}

Android

在AndroidManifest.xml中添加明文流量允许,并配置WebView的混合内容模式:

  1. 在<application>标签添加:
android:usesCleartextTraffic="true"
  1. 在WebView的初始化代码中设置:
var webSettings = webView.Settings;
webSettings.MixedContentMode = Android.Webkit.MixedContentHandling.AlwaysAllow;

iOS

在Info.plist中添加App Transport Security例外:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

注意:该配置会被苹果App Store审核拒绝,仅适用于内部测试或企业分发应用。

内容的提问来源于stack exchange,提问作者Hickori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 14:25:00