Javascript 检测服务是否可用的最佳实践
我需要检测我的服务现在是否可用 但是,由于某种原因,当我尝试访问某些服务方法时,即使服务已关闭,我在ajax()函数中也获得了成功 我在success字段中得到一个包含404消息的html页面 我最好的猜测是使用Javascript 检测服务是否可用的最佳实践,javascript,jquery,web-services,Javascript,Jquery,Web Services,我需要检测我的服务现在是否可用 但是,由于某种原因,当我尝试访问某些服务方法时,即使服务已关闭,我在ajax()函数中也获得了成功 我在success字段中得到一个包含404消息的html页面 我最好的猜测是使用typeof(data)并将其与字符串类型进行比较 但我认为一定有更好的解决办法 没什么特别的,只有$.ajax() 按照你提供的信息进行 如果您控制该服务(即:您构建了该服务),那么当该服务不可用时,您可以让Web服务器返回503代码。这是Web服务器在您的服务关闭时应该做的事情 如果
typeof(data)
并将其与字符串类型进行比较
但我认为一定有更好的解决办法
没什么特别的,只有$.ajax()
按照你提供的信息进行 如果您控制该服务(即:您构建了该服务),那么当该服务不可用时,您可以让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和的成功回调,这是我以前从未见过的。您能提供您的js/ajax代码吗?Thx@WimOmbelets我这样做了,但不认为这有什么帮助参考:注意,文档将错误回调为
error(jqXHR jqXHR,String textStatus,String errorwhold)
“当HTTP错误发生时,errorwhold接收HTTP状态的文本部分,例如“找不到”或“内部服务器错误”。“好的,那么如果您希望json
或xml
的行为正确,并且string
表示错误,那么您检查typeof(data)
的想法可能是好的。
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.
}
});