【问题标题】:Javascript fetch stopped working for local filesJavascript fetch 停止对本地文件工作
【发布时间】:2021-11-10 01:44:33
【问题描述】:

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

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

abcjs-init.js:15 Fetch API 无法加载 file:///E:/​​OneDrive/Documents/ABCJS-Minimal-Editor-Notation-Player/tunes/tune_list.txt。不支持 URL 方案“文件”。

这是我的代码:

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 调用添加内容?

【问题讨论】:

  • 我看到了这个问题。它没有解释为什么昨天我的应用程序可以获取,而今天我需要 20 行自定义代码来做同样的事情。

标签: javascript html browser fetch local


【解决方案1】:

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

我显然在操作系统维护期间删除了该设置。

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

【讨论】:

    猜你喜欢
    • 2012-05-13
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 2021-09-16
    • 2011-12-04
    • 1970-01-01
    相关资源
    最近更新 更多