首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于CORS问题,通过浏览器的JS-IPFS http客户端失败

由于CORS问题,通过浏览器的JS-IPFS http客户端失败
EN

Stack Overflow用户
提问于 2019-04-08 17:16:12
回答 1查看 1.2K关注 0票数 2

我正在基于js-ipfs-http-client浏览器示例here进行一些研究和测试。

当我尝试从IPFS获取响应时,我从firefox控制台收到以下警告:

跨域请求被阻止:同源策略不允许读取http://localhost:5001/api/v0/add?wrapWithDirectory=true&progress=true&wrap-with-directory=true&stream-channels=true的远程资源。(原因: CORS头‘Access-Control-Allow-Origin’缺失)。

我已经尝试了推荐的(脏的)修复,您可以从终端更改您的IPFS配置:

代码语言:javascript
复制
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"*\"]"

但即使是这样,似乎也行不通。我开始考虑是否可以使用前面提到的here自定义标头

不走运。

我这样设置IPFS : const ipfsClient = require(' ipfs -http-client');var ipfs= ipfsClient('localhost','5001');

然后,一旦我从用户那里获得一些文件,我尝试将其保存到IPFS,如下所示:

代码语言:javascript
复制
function saveToIpfsWithFilename (file) 
{
    console.log('running save');

    let ipfsId;
    const fileStream = fileReaderPullStream(file);
    const fileDetails = 
    {
      path: file.name,
      content: fileStream
    };

    const options =
    {
      wrapWithDirectory: true,
      progress: (prog) => console.log(`received: ${prog}`)
    };

    ipfs.add(fileDetails, options).then((response) => 
    {
        console.log(response)
        // CID of wrapping directory is returned last
        ipfsId = response[response.length - 1].hash
        console.log(ipfsId)
    }).catch((err) => {
        console.error(err)
      });
}
EN

回答 1

Stack Overflow用户

发布于 2020-10-03 01:13:16

我也遇到过同样的问题,然后我尝试运行以下命令,这对我来说很有效

代码语言:javascript
复制
ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"*\"]"
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials "[\"true\"]"

希望这能解决你的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55569973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档