我正在根据js-ipfs-http-client浏览器示例进行一些研究和测试
当我尝试从IPFS获得响应时,我从Firefox控制台收到以下警告:
阻止跨源请求:同源策略不允许在 http://localhost:5001/api/v0/add?wrapWithDirectory=true&progress=true&wrap-with-directory=true&stream-channels=true 读取远程资源。(原因:缺少 CORS 标头"访问控制-允许源"(。
我已经尝试了推荐的(脏(修复程序,您可以从终端更改IPFS配置:
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "["*"]"
但即使这样似乎也行不通。我开始研究可能使用此处提到的自定义标头
没有运气。
我像这样设置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)
});
}
我也遇到了同样的问题,然后我尝试运行以下命令,这对我有用
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"]"
希望这将解决您的问题