检测服务是否可用的最佳做法

时间:2013-08-29 08:02:32

标签: javascript jquery web-services

我需要检测我的服务目前是否可用。

但是,出于某种原因,即使服务已关闭,当我尝试访问某些服务方法时,我在ajax()函数中也获得了成功。

我在成功字段中获得了一个带有404消息的html页面作为数据。

我最好的猜测是使用typeof(data)并将其与字符串类型进行比较。

但我认为必须有更好的解决方案。

没有什么特别的$ .ajax()

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

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

            },
            datatype: "json",
        });

1 个答案:

答案 0 :(得分:2)

使用您提供的信息。

如果您控制该服务(即:您构建了它),那么您可以在服务不可用时让Web服务器返回503代码。这是Web服务器在您的服务停止时应该执行的操作。

如果没有,那么您需要检查404错误代码,而不是现在正在接收并在代码中正常处理它。

我假设您正在为客户端使用jQuery,因为您引用了ajax()调用。以下是检查失败回调中错误代码的基本示例:

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 击中成功回调是我以前从未见过的。