0

サービスが現在利用可能かどうかを検出する必要があります。

しかし、何らかの理由で、サービスがオフになっているにもかかわらず、いくつかのサービス メソッドに到達しようとすると、ajax() 関数で成功を受け取ります。

成功フィールドのデータとして 404 メッセージを含む html ページを取得します。

私の最善の推測は、それを使用typeof(data)して文字列型と比較することです。

しかし、もっと良い解決策があるはずだと思います。

$.ajax() だけで特別なことは何もありません

 $.ajax({
            url: '../Services/Service.svc/getItems',
            data: {},
            error: function (error) {

            },
            success: function (data, status, xhr) {

            },
            datatype: "json",
        });
4

1 に答える 1

2

あなたが提供した情報で行きます。

あなたがサービスを管理している (つまり、それを構築した) 場合は、サービスが利用できないときに Web サーバーに 503 コードを返すようにすることができます。これは、サービスがダウンしているときに Web サーバーが行うべきことです。

そうでない場合は、代わりに現在受け取っている 404 エラー コードを確認し、コードで適切に処理する必要があります。

ajax() 呼び出しを参照しているため、クライアントに jQuery を使用していると思います。以下は、fail コールバックでエラーコードを確認する基本的な例です。

var serviceRequest = $.ajax(...);

serviceRequest.done(function(returnedData) {
    // Service is active and returning data.
});

serviceRequest.fail(function (xhr) {
    if(xhr.status == 404) {
        // handle this.
    }

    if(xhr.status == 503) {
        // handle this.
    }
});

404 を受信し​​成功のコールバックをヒットする理由は、これまでに見たことのないものです。

于 2013-08-29T08:33:42.873 に答える