Ipfs

IPFS 和 https 要求

  • October 24, 2017

我正在使用 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 '["*"]'

引用自:https://ethereum.stackexchange.com/questions/15862