0

次のコードは、navigator.onLineを使用する代わりに、サーバーが到達可能かどうかを確認することによって実行されます。

「簡単な」質問-どうすればそれを機能させることができますか?

function serverReachable() {
  // IE vs. standard XHR creation
  var x = new ( window.ActiveXObject || XMLHttpRequest )( "Microsoft.XMLHTTP" ),
      s;
  x.open(
    // requesting the headers is faster, and just enough
    "HEAD",
    // append a random string to the current hostname,
    // to make sure we're not hitting the cache
    "//" + window.location.hostname + "/?rand=" + Math.random(),
    // make a synchronous request
    false
  );
  try {
    x.send();
    s = x.status;
    // Make sure the server is reachable
    return ( s >= 200 && s < 300 || s === 304 );
  // catch network & other problems
  } catch (e) {
    return false;
  }
}

上記のコードは記事から抜粋したものです:http://louisremi.com/2011/04/22/navigator-online-alternative-serverreachable/しかし、なぜそれが機能しないのか理解できません。

4

1 に答える 1

1

「どういうわけか、使用しているサーバーに関係なく、false しか返されません」

オリジン ポリシーが同じであるため、任意のサーバーを選択することはできません。現在所属しているローカルドメインのみ行うことができます。

于 2012-12-30T05:03:14.120 に答える