1

私はIPFSは初めてで、JavaScriptも間違いなく初めてですが、ブラウザで実行される基本的なIPFSリダイレクトユーザースクリプトを作成することができ*://*/ipfs/*まし*://*/ipns/*http://localhost:8080/<IPFS_HASH>.

ただし、ローカル IPFS ノードが実行されていない場合があるため、localhost:8080 で何も起きていないため、再ルーティングは何も行われません。したがって、私の質問は、ブラウザー内で JS ユーザースクリプトを使用する方法があるかどうか (私の場合: Tampermonkey を使用した Safari) で、localhost:8080 に到達できるかどうかを判断する方法があるかどうかです。アクセスできない場合、スクリプトは何もしません。アクセスできる場合は、リダイレクトを開始します。

ローカル IPFS ノードがアクティブな場合、localhost:8080 は「404 ページが見つかりません」を返します

http://i.imgur.com/S1vDQLy.png

…ノードが非アクティブの場合、Safari はそこに到達できません。

http://i.imgur.com/Q2TF2MQ.png

したがって、最も簡単な方法は (おそらく) と同等の JavaScript を実行することですcurl -o /dev/null --silent --head --write-out "%{http_code}\n" localhost:8080。"404" が返された場合、IPFS がアクティブであり、スクリプトは再ルーティングされます。「000」が返された場合、IPFS は非アクティブであり、スクリプトは何もしません。

では、JavaScript を使用してこれを行うにはどうすればよいでしょうか。ご協力ありがとうございました。

4

1 に答える 1

2

XMLHttpRequest を使用して、サーバーにクエリを実行できます。ここからの例。

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
                // Request finished; either succesful or via timeout
                alert(xhr.status);
        }
};

xhr.open("POST", "http://localhost:8080", true);
xhr.timeout = 4000; // Set timeout to 4 seconds (4000 milliseconds)
xhr.ontimeout = function () { alert("Timed out!!!"); }
xhr.send("");
于 2017-08-06T18:25:53.560 に答える