Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查自托管服务是否正在运行_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 检查自托管服务是否正在运行

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('

我有一个自托管服务(使用WCF),将在客户机上运行。该服务应该向另一台服务器发出请求,以XML的形式获取数据,然后以
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服务未运行,则请求失败,但不会触发错误回调