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

时间:2013-09-20 12:44:45

标签: javascript jquery ajax

我有一个将在客户端计算机上运行的自托管服务(使用WCF)。该服务应该向另一台服务器发出请求,以XML格式获取数据,然后将数据返回给我JSONP。现在我想检查服务是否正在运行..我该如何检查?

在我的JS代码中,我使用$.getJSON进行回调,所以我尝试使用.fail这样:

$.getJSON("http://localhost:8080/url?callback=?", function () {
    alert("success");
}).fail(function () {
    alert('fail');
})

但是当服务器未运行时未调用失败函数(在chrome上,Type为pendingStatus失败)

然后我尝试使用这样的$ .AJAX:

$.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');
    }
});

我得到了同样的结果。

1 个答案:

答案 0 :(得分:0)

当您向本地主机发出AJAX请求并且/url?返回天气其他服务器启动时,您的脚本不会失败。因为http://localhost/url在线。

我让/url脚本返回带有remoteHostOnline: true or 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');
    }
}
});

您可能需要调整此脚本我没有测试它,但您会明白错误。