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

时间:2019-04-08 09:16:12

标签: javascript node.js browserify ipfs

我正在基于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配置:

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"*\"]"

但是这似乎也不起作用。我开始研究可能使用的自定义标头,如here

没有运气。

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

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

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)
      });
}

1 个答案:

答案 0 :(得分:1)

我也遇到过同样的问题,那么我尝试运行以下以下命令,这对我有用

0-th

希望这可以解决您的问题