web-dev-qa-db-ja.com

jQueryでサーバーの到達可能性テストをチェックする方法はありますか?

サーバーの到達可能性テストを確認する方法はありますか?アプリケーションがサーバーに接続できない場合、アラートが表示されますか?確認する方法はありますか。インターネット接続を確認します。接続がない場合はアラートを表示します。ただし、接続はあるがサーバーに到達できない場合は、どうすれば処理できますか。この接続状態を確認しています。

setInterval(function () {
    connectionStatus = navigator.onLine ? 'online' : 'offline';
    if(connectionStatus=="offline"){
        // alert("There is no connection");
    }
}, 100);



$.ajax({url: "192.168.12.171",
        dataType: "jsonp",
        statusCode: {
            200: function (response) {
                alert('status 200');
            },
            404: function (response) {
                alert('status  404 ');
            }
        }                        
 });
8
user2563256

サーバーが稼働しているかどうかをテストするには、サーバーに接続してステータスマッサージを確認する必要があります。

$.ajax('LINK GOES HERE', {
  statusCode: {
    404: function() {
      alert('Not working');
    },
    200: function() {
      alert('Working');
    }
  }
});

実用的なjsFiddleの例: http://jsfiddle.net/Gajotres/PMrDn/47/

$.ajax({url: "http://api.themoviedb.org/2.1/Movie.search/en/json/23afca60ebf72f8d88cdcae2c4f31866/The Goonies",
        dataType: "jsonp",
        statusCode: {
            200: function (response) {
                alert('status 200');
            },
            404: function (response) {
                alert('status  404 ');
            }
        }                        
 });

編集:

これを使って:

$.ajax({url: "http://192.168.12.171",
        type: "HEAD",
        timeout:1000,
        statusCode: {
            200: function (response) {
                alert('Working!');
            },
            400: function (response) {
                alert('Not working!');
            },
            0: function (response) {
                alert('Not working!');
            }              
        }
 });

実例: http://jsfiddle.net/Gajotres/PMrDn/48/

22
Gajotres

うまくいくはずのハックな方法の1つは、サーバーから画像(またはフォント、スタイル、JavaScript)をロードし、それが 画像が読み込まれる かどうかを確認することです。もちろん、この方法は、CORSポリシーによって制限されていないサーバーからロードするものがある場合にのみ機能します。

0
Arne S