0

我有一个想要独立的 Blazor WASM PWA(如果可能)。

目前,我正在尝试在 wwwroot 下操作 json 文件

Json 文件的位置

现在,虽然我可以通过 HttpClient.GetFromJsonAsync 读取其内容,但所有其他访问该文件的尝试都失败了。

我试过的:

  • 通过 File.Exists 检查文件是否存在 -> 返回 false
  • 通过 HttpClient.PostAsJsonAsync 发布对象 -> 为 Json 文件返回 404

我知道在 WebAssembly 中,文件被缓存/加载到浏览器中,所以我明白为什么我不能使用“/datasource-json/Ingredient.json”之类的路径找到文件,但为什么“GetFromJsonAsync”可以使用那条路呢?

我是否缺少一些重要的东西,我该如何解决这个问题?对于这个特定的项目,如果可能的话,我不想使用另一个 Api-Project + Entity Framework。

4

1 回答 1

0

Wasm 完全在浏览器上运行,因此您实际上没有文件系统。如果你有的话,那将是客户端机器,但这将是一个重大的安全漏洞。

为什么从 http 获取文件是因为服务器提供了对 web 根目录中所有文件的 GET 访问。

为什么 POST 不起作用是因为发布内容需要一个服务器端点来监听该 URL 上的数据并且可以理解您发送的格式。因此,您需要某种控制器,该控制器将具有与文件 URL 不同的特定 URL

于 2021-01-21T22:31:36.023 回答