使用流量反应框的固态硬盘应用程序

问题描述 投票:0回答:1

我正在使用交通反应框制作Solidity Drive应用。

将文件拖放到浏览器以将文件上传到ipfs,并尝试通过调用已部署的智能联系人来保存返回的哈希值。

解密文件时,返回错误'POSThttp://localhost:5001/api/v0/add?stream-channels=true403(禁止)。

我需要有关修复方法的帮助。

//这是我的onDrop事件代码

  onDrop = async (file) => {
try {
  const {contract, accounts} = this.state;
  const stream = fileReaderPullStream(file);
  const result = await ipfs.add(stream);
  const timestamp = Math.round(+new Date() / 1000);
  const type = file.name.substr(file.name.lastIndexOf(".")+1);
  let uploaded = await contract.methods.add(result[0].hash, file.name, type, timestamp).send({from: accounts[0], gas: 300000})
  console.log(uploaded);
  this.getFiles();
} catch (error) {
  console.log(error);
}

};

javascript solidity truffle ipfs
1个回答
1
投票

这是CORS问题。无法通过这样的浏览器直接访问IPFS HTTP API,您需要将其放置在诸如NGINX服务器之类的位置,该服务器配置为能够正确处理CORS,以便它能够正确处理基于浏览器的请求。

编辑:

另外,如果您不想使用NGINX,则可以直接更改ipfs节点配置,以覆盖可以访问的域列表。有关更多信息,请参见here

© www.soinside.com 2019 - 2024. All rights reserved.