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

如何将Blazor应用作为插件嵌入加载到其他域名的页面中

Blazor WASM跨域名作为第三方插件嵌入的实现求助

我花了大量时间实现Blazor插件功能,目标是将我的应用作为插件嵌入到其他域名的网页中。目前功能已可运行,但实现方法存在严重缺陷,希望大家能提供更优方案。

先说明我的实现场景:右侧是我的站点,左侧是其他站点调用我提供的插件需要编写的代码。
从其他域名调用Blazor作为插件

我目前的实现方法

  • 按照官方文档说明,使用AOT(Ahead Of Time)编译我的应用。如果不使用AOT,Blazor会尝试从客户端域名而非我的服务器加载所有dll文件。
  • 要求客户端域名侧的代码添加autostart=false配置和Blazor.start({...代码。即便开启AOT,Blazor仍会尝试从客户端域名加载blazor.boot.js,这是硬编码逻辑,相关官方Issue已关闭,官方称已通过JS初始化器修复,但即便开启AOT,JS初始化器仍默认使用宿主客户端的域名,问题并未真正解决。

当前方案存在的问题

  • AOT仅支持Release构建,而我需要Debug构建来调试。微软称正在解决该问题,暂时不算完全阻塞。
  • 客户端侧需要编写的Blazor.start代码不够简洁优雅。
  • Blazor的大多数调用仍默认使用宿主客户端的域名,比如上文提到的JS初始化器。尽管空插件可以正常运行,但这个问题会阻碍复杂应用的开发,这是最核心的问题,也是我希望获得帮助的点。目前跨域名嵌入Blazor应用仅能实现非常基础的页面,无法支持复杂功能。

一个可行的备选方案是微软提出的规避防火墙拦截Blazor调用DLL的方案,但该方案过于复杂且维护成本高,我担心会引发更多问题,不过仍计划尝试。

非常欢迎大家提供改进方案或替代思路,谢谢!

补充:上述大部分问题的潜在解决方案是修改Blazor的fetch函数使用的默认源,该问题不覆盖本问题的讨论范围,我已单独创建相关问题进行讨论。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:15:00