我需要检测我的服务目前是否可用。
但是,出于某种原因,即使服务已关闭,当我尝试访问某些服务方法时,我在ajax()函数中也获得了成功。
我在成功字段中获得了一个带有404消息的html页面作为数据。
我最好的猜测是使用typeof(data)
并将其与字符串类型进行比较。
但我认为必须有更好的解决方案。
没有什么特别的$ .ajax()
$.ajax({
url: '../Services/Service.svc/getItems',
data: {},
error: function (error) {
},
success: function (data, status, xhr) {
},
datatype: "json",
});
答案 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 和击中成功回调是我以前从未见过的。