0

クライアント マシンで実行されるセルフ ホスト サービス (WCF を使用) があります。そのサービスは、別のサーバーにリクエストを送信し、データを XML として取得し、そのデータを として返しますJSONP。今、サービスが実行されているかどうかを確認したい..どうすれば確認できますか?

私のJSコードでは、コールバックで$.getJSONを使用しているので、次のように使用しようとしました.fail:

$.getJSON("http://localhost:8080/url?callback=?", function () {
    alert("success");
}).fail(function () {
    alert('fail');
})

しかし、サーバーが実行されていないときにfail関数は呼び出されませんでした(ChromeではTypependingStatusFailedです)

次に、次のように $.AJAX を使用しようとしました:

$.ajax({
    type: 'GET',
    dataType: 'jsonp',
    url: 'http://localhost:8080/url?callback=?',
    success: function (data, textStatus) {
        alert('request successful');
    },
    error: function (xhr, textStatus, errorThrown) {
        alert('request failed');
    }
});

同じ結果が得られました。

4

1 に答える 1

0

ローカルホストに AJAX リクエストを送信し、他の/url?サーバーが稼働しているかどうかを返す場合、スクリプトは失敗しません。オンラインなので。http://localhost/url

/urlスクリプトが を使用して JSON 配列を返すようにしremoteHostOnline: true or false、次を使用します。

$.ajax({
type: 'GET',
dataType: 'jsonp',
url: 'http://localhost:8080/url?callback=?',
success: function (data, textStatus) {
    if (data.remoteHostOnline == false) {
        alert('remote host not online');
    }
}
});

このスクリプトを微調整する必要があるかもしれません。私はテストしていませんが、何が問題なのか理解できるでしょう。

于 2013-09-20T13:25:03.877 に答える