Javascript 获取本地文件停止工作

Javascript fetch stopped working for local files

我有一个很小的 ​​HTML/CSS/JS 应用程序,我用它来阅读和播放某些类型的文件。我不需要它在服务器上。

截至昨天,它“奏效了”。突然,今天我收到有关对本地文件使用 fetch 的错误。我确实在我的 Windows 10 笔记本电脑上进行了一些设置更改。

abcjs-init.js:15 Fetch API cannot load file:///E:/OneDrive/Documents/ABCJS-Minimal-Editor-Notation-Player/tunes/tune_list.txt. URL scheme "file" is not supported.

这是我的代码:

fetch(tunes_list_path,  {mode: 'no-cors'})
    .then(response =>
    {
        console.log("response:", response);
        return response
    })
    .then(data => 
    {
        console.log("data:", data)
        return data.text()
    })
    .then(Normal =>
    {
        console.log("got tunelist");
        console.log("tune_list");
        
        let  tune_list = Normal.split("\n").sort();
        addTunesToSelector(tune_list);
    })
    .catch(err =>
    {
        console.log('Fetch problem show: ' + err.message);
    });

再往上是:let tunes_list_path = "tunes/tune_list.txt";.

index.html 加载正常。我也可以直接用它的 URL 查看错误中的文件。所以它对浏览器是可见的。

我需要在浏览器中启用某些功能吗?在 fetch 调用中添加内容?

啊哈!我更改了 Firefox 中的设置,允许使用本地文件进行 COORS:privacy.file_unique_origin.

我显然在 OS 维护期间删除了该设置。

此解决方案仅适用于 FF。基于 Chromium 的浏览器可能有等效的设置。