0

デスクトップから実行して公開 Web サイトから情報を取得する Web ページを作成しました。1)インターネット接続がない場合はアラートが表示されます 2)インターネット接続はあるが、何らかの理由で情報が正しく取得されなかった場合、ユーザーにアラートが表示されます。

インターネットに接続されていない場合、try and catch はテストで機能します。

2 番目のテストに xml.status コードを使用しています...ウェブサイトはアクティブであるが、取得された情報が台無しになっている場合....そのテスト条件は、希望どおりに機能していません。私は xml.open に偽のウェブサイトを与えようとしましたが、200-300 以外のステータス コードを期待していました。しかし、それは機能しませんでした...代わりに、catch ステートメントがアクティブ化されました。どうしてこれなの?そして、これを書くより良い方法はありますか?

また、余談ですが、「」を返しました。これを使用する呼び出し変数は、null または未定義にすることができないためです。 variable = getInfo(); n.setAttribute("プレースホルダー", 変数);

function getInfo() {
        var xml = null;
        xml = new XMLHttpRequest(); 
        try {
            xml.open("get", "http://example.asp", false);
            xml.send(null);
            if ((xml.status >= 200 && xml.status <= 300) || xml.status == 304) {
                var hi = xml.responseText;
                hi = hi.replace(/(\r\n|\n|\r)/gm, "");
                var what1 = /winning_number_sm.*?ul/
                    var what2 = /\d+/g

                    hi = what1.exec(hi);
                var temp;
                for (i = 0; i < 6; i++) {
                    if (null !== (temp = what2.exec(hi))) {
                        numbers[i] = temp;
                    }
                }
                return numbers;
            } else {
                alert("Error Connecting to Website! You will have to eneter informatin by hand");
                return "";
            }
        } catch (e) {
            alert("No Internet Connection! You will have to enter information by hand");
            return "";
        }

}
4

2 に答える 2

0

jQueryフレームワークを使用できるかどうかはわかりませんが、ajax接続からエラーを取得するには(Webサイトが稼働しているかどうかをテストします)、簡単に行うことができます:

//your ajax object
var request = $.ajax({
  url: "http://www.exemple.com/script.php",
  type: "POST",
  data: {/*your datas*/},
  dataType: "html"
});

request.done(function(msg) {
  //make your stuff automatically
});

request.fail(function(jqXHR, textStatus) {
  alert( "Error Connecting to Website! You will have to enter informatin by hand");
});
于 2012-10-14T09:47:14.043 に答える
0

別のアプローチとして、curl 関数を使用してリモート URL をテストするローカル php スクリプトを呼び出すことができます (例: http://www.php.net/manual/en/function.curl-error.php ) 。

于 2012-10-16T14:08:07.427 に答える