Ipfs
IPFS 和 https 要求
我正在使用 IPFS 和 http 進行測試,但出現如下錯誤:
App.js:239 ipfs add error DOMException: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).
我有這個程式碼 -
var zstr = 'hello world from Zillerium2' this.IpfsAPI.add(new Buffer(zstr), function (err, res){ console.log("hello"); if(err || !res) return console.error("ipfs add error", err, res); else{ console.log("no issue"); console.log(res); res.forEach(function(text) { console.log('successfully stored', text.hash); // console.log('successfully stored', text.path); // display(file.Hash); var textaddress=text.hash; console.log(textaddress); }); } });
我從 IPFS 論壇了解到,API 呼叫不需要 https,那麼是否有要設置的配置或消除系統此錯誤的東西?
我發現訪問不需要https。
這會返回顯示不需要 https 的結果 -
curl -H "Origin: http://jenbil.com" \ -H "Access-Control-Request-Method: POST" \ -H "Access-Control-Request-Headers: X-Requested-With" \ --verbose \ http://162.243.237.41:5001/api/v0/swarm/peers; echo
還使用 Chrome 和網路選項卡進行測試,您可能會看到呼叫的實際狀態,並且不需要 https。
您必須確保 ipfs cors 設置正確,並確認使用
ipfs config show
這給了我 -
root@ubuntu-2gb-nyc2-01:/home/zipfs/test# ipfs config show { "API": { "HTTPHeaders": { "Access-Control-Allow-Credentials": [ "true" ], "Access-Control-Allow-Methods": [ "PUT", "POST", "GET" ], "Access-Control-Allow-Origin": [ "*" ] } }, "Addresses": { "API": "/ip4/0.0.0.0/tcp/5001", "Gateway": "/ip4/0.0.0.0/tcp/8180", "Swarm": [ "/ip4/0.0.0.0/tcp/4001", "/ip6/::/tcp/4001" ] },
擺脫這個錯誤:
只允許安全來源
使用這兩個命令:
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]' ipfs config --json Gateway.HTTPHeaders.Access-Control-Allow-Origin '["*"]'