使用javascript来测试服务器是否可访问

时间:2011-06-29 00:02:45

标签: javascript jquery

我有一个javascript应用程序,可以从我公司防火墙内的服务器异步加载数据。我们有时需要在防火墙之外显示此应用程序,但并不总是可以使用VPN。因此,我们将防火墙配置为允许在特定端口上公开请求此数据。问题:当我进入企业网络时,由于防火墙的特殊配置,我只能使用服务器的DNS名称加载数据。在公司网络之外,我必须使用服务器的公共IP地址..

目前我们分发了两个版本的javascript应用程序 - 一个在防火墙内部工作,另一个在外部工作。我们想分发一个应用程序 - 一个用于测试URL,然后根据哪个可访问,继续使用该地址加载数据。

我一直在使用jQuery的$.ajax()调用来加载数据,我注意到有一个timeout参数。我以为我可以使用短暂超时来确定哪个服务器无法访问..但是,这个“倒计时”似乎没有开始,直到与服务器的初始连接完成。

有关如何在javascript中确定哪两个服务器可以访问的任何想法?

2 个答案:

答案 0 :(得分:2)

使用error事件:

$.ajax({
    url: dnsUrl,
    success: ... // Normal operation
    error: function () {
        $.ajax({
            url: ipUrl,
            success: ... // Normal operation
        });
    }
});

答案 1 :(得分:1)

您可以在服务器上放置一些虚拟图像并尝试加载它们。成功加载的图像的onload-event应该触发。