Javascript 检查自托管服务是否正在运行
我有一个自托管服务(使用WCF),将在客户机上运行。该服务应该向另一台服务器发出请求,以XML的形式获取数据,然后以Javascript 检查自托管服务是否正在运行,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个自托管服务(使用WCF),将在客户机上运行。该服务应该向另一台服务器发出请求,以XML的形式获取数据,然后以JSONP的形式返回给我。现在我想检查服务是否正在运行。。我该怎么查呢 在我的JS代码中,我使用callback,因此我尝试使用.fail如下: $.getJSON("http://localhost:8080/url?callback=?", function () { alert("success"); }).fail(function () { alert('
JSONP
的形式返回给我。现在我想检查服务是否正在运行。。我该怎么查呢
在我的JS代码中,我使用callback,因此我尝试使用.fail
如下:
$.getJSON("http://localhost:8080/url?callback=?", function () {
alert("success");
}).fail(function () {
alert('fail');
})
$.ajax({
type: 'GET',
dataType: 'jsonp',
url: 'http://localhost:8080/url?callback=?',
success: function (data, textStatus) {
alert('request successful');
},
error: function (xhr, textStatus, errorThrown) {
alert('request failed');
}
});
但服务器未运行时未调用fail函数(在chrome上,类型为pending
和Status
为Failed)
然后我尝试使用$.AJAX,如下所示:
$.getJSON("http://localhost:8080/url?callback=?", function () {
alert("success");
}).fail(function () {
alert('fail');
})
$.ajax({
type: 'GET',
dataType: 'jsonp',
url: 'http://localhost:8080/url?callback=?',
success: function (data, textStatus) {
alert('request successful');
},
error: function (xhr, textStatus, errorThrown) {
alert('request failed');
}
});
我得到了同样的结果。当您向本地主机发出AJAX请求并且
/url?
返回其他服务器是否启动时,您的脚本不会失败。因为http://localhost/url
已联机
我会让/url
脚本返回带有remoteHostOnline:true或false的JSON数组,
然后使用:
$.ajax({
type: 'GET',
dataType: 'jsonp',
url: 'http://localhost:8080/url?callback=?',
success: function (data, textStatus) {
if (data.remoteHostOnline == false) {
alert('remote host not online');
}
}
});
您可能需要调整此脚本,我没有测试它,但您会明白问题所在。localhost不是远程计算机,您确定已禁用localhost上的8080端口,这只是我能想象到的最简单的事情。。将localhost
替换为djq3oilkthoi3thjst
mylocalhost服务调用其他/远程服务器,然后将结果返回给我json问题是,如果localhost服务未运行,则请求失败,但不会触发错误回调