【发布时间】:2021-07-16 02:34:01
【问题描述】:
我正在开发一个应该通过自定义传输协议运行的应用程序,该协议与 http 几乎相同,但在查询字符串的开头有一个 package:// 前缀而不是 http://。因此,对名为 index.html 的资源的查询看起来像 package://resources/index.html。
我想将 Blazor WebAssembly 应用程序部署到此环境中。问题是,一旦 Blazor 的 index.html 被加载 - 它就会加载 blazor.webassembly.js,它使用 fetch() 加载 blazor.boot.json。但是,fetch() 似乎只与 http 和 https 一起工作(不知道为什么),我收到了这个错误:
blazor.webassembly.js:1 Fetch API cannot load package://package_name/wwwroot/_framework/blazor.boot.json.
URL scheme "package" is not supported.
(anonymous) @ blazor.webassembly.js:1
blazor.webassembly.js:1 TypeError: Failed to fetch
at Function.<anonymous> (blazor.webassembly.js:1)
at blazor.webassembly.js:1
at Object.next (blazor.webassembly.js:1)
at blazor.webassembly.js:1
at new Promise (<anonymous>)
at blazor.webassembly.js:1
at Function.initAsync (blazor.webassembly.js:1)
at blazor.webassembly.js:1
at blazor.webassembly.js:1
at Object.next (blazor.webassembly.js:1)
我在想也许用一个在内部使用 XMLHttpRequest 的函数覆盖 fetch 会有所帮助,但我不确定这在 js 中是否可行。总的来说,我想知道如何让 Blazor 在运行在不是 http 或 https 但除了方案命名之外非常相似的协议上运行的应用程序中工作。
【问题讨论】:
标签: javascript c# .net blazor blazor-webassembly