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

使用您提供的信息。

如果您可以控制服务(即:您构建了它),那么您可以让网络服务器在服务不可用时返回 503 代码。当您的服务关闭时,这是网络服务器应该做的事情。

如果不是,那么您需要检查 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点击成功回调是我以前从未见过的。

于 2013-08-29T08:33:42.873 回答