14

このコードを試していますが、DOM 例外が発生します。プレーンなJavascriptを使用して、関数から真/偽の「答え」を取得したいのです。

var url = 'http://www.google.com/';
function UrlExists(url)
{
  var http = new XMLHttpRequest();
  http.open('HEAD', url, false);
  http.send();
  return http.status!=404;
}
UrlExists(url);

フィドル

このSO 回答からこのコードを取得しましたが、前述のように機能させることができません...

4

4 に答える 4

1

クロス ドメインではステータス コードが表示されません。ステータス コードは、サーバーが yes または no で応答したときにサーバーから受信するコンテンツの一部です。クロスドメインサーバーの場合、リクエストに応答しません。

コードの 2 つ目の間違いは、待機時間や成功イベントなしでステータス コードを直接取得できないことです。関数内の return ステートメントは、サーバーが ajax リクエストに応答するまで待機しないため、それに依存することはできません。

于 2016-12-26T13:19:42.597 に答える