我有一个javascript应用程序,可以从我公司防火墙内的服务器异步加载数据。我们有时需要在防火墙之外显示此应用程序,但并不总是可以使用VPN。因此,我们将防火墙配置为允许在特定端口上公开请求此数据。问题:当我进入企业网络时,由于防火墙的特殊配置,我只能使用服务器的DNS名称加载数据。在公司网络之外,我必须使用服务器的公共IP地址..
目前我们分发了两个版本的javascript应用程序 - 一个在防火墙内部工作,另一个在外部工作。我们想分发一个应用程序 - 一个用于测试URL,然后根据哪个可访问,继续使用该地址加载数据。
我一直在使用jQuery的$.ajax()
调用来加载数据,我注意到有一个timeout
参数。我以为我可以使用短暂超时来确定哪个服务器无法访问..但是,这个“倒计时”似乎没有开始,直到与服务器的初始连接完成。
有关如何在javascript中确定哪两个服务器可以访问的任何想法?
答案 0 :(得分:2)
使用error
事件:
$.ajax({
url: dnsUrl,
success: ... // Normal operation
error: function () {
$.ajax({
url: ipUrl,
success: ... // Normal operation
});
}
});
答案 1 :(得分:1)
您可以在服务器上放置一些虚拟图像并尝试加载它们。成功加载的图像的onload-event应该触发。