1

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
4

1 に答える 1

0

ここで提案されているように、プロキシを使用してブラウザーに課せられた CORS 制限を回避できます (jsonp なし)。

https://en.m.wikipedia.org/wiki/JSONP

于 2015-09-21T03:35:50.293 に答える