Blazor WASM 文件不存在但可读?

问题描述

我有一个 Blazor WASM PWA,我想独立使用(如果可能的话)。

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

Location of Json File

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

我尝试过的:

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

我知道在 WebAssembly 中,文件被缓存/加载到浏览器中,所以我明白为什么我应该无法找到路径类似“/datasource-json/Ingredient.json”的文件,但是为什么“GetFromJsonAsync " 然后使用该路径?

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

解决方法

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...