URL アドレスが実際に有効なページを返すことを検証したい。
2 つの方法があります。
- IFrame - URL を指す iframe を作成します。
- Ajax - URL へのajaxリクエストを作成し、ステータス コードを確認します。
Ajax メソッドは、ページが存在するかどうかに関係なく、クロス ドメイン リクエストに対して常にステータス コード 0 を返すため、機能していません。
フレームのステータスまたはエラーをキャプチャするメカニズムが見つかりません。
私が得ているグーグルのヒットのほとんどは、構文チェックのためのものです。
Ajax の Fiddle コード
var urlTest = function (url) {
var xhr = new window.XMLHttpRequest();
xhr.open('GET', url, true);
xhr.onreadystatechange = function () {
console.log('readyState | status : ' + this.readyState + ' | ' + this.status);
if (this.readyState === 4) {
if (this.status === 200) {
// console.log('4 | 200');
// xhr.responseText;
}
}
};
xhr.send(null);
}
urlTest('http://www.google.com'); // cross domain always give status 0