本文主要讲述如何在js里面从多个服务端servlet中找到可用的地址
一般项目部署到生产环境之后会有一个生产网段(就是你可以在家访问)和一个办公网段(只能在公司才能访问)。
我们的项目部署好了之后,外部系统调用我们的servlet 这个时候就需要检测联哪一个地址,意思就是 需要在js里面检测到底要连哪个地址
具体js代码如下:
function getXhr() {
var httpreq = null;
//由于涉及跨域问题,这里优先使用ActiveXObject
if (window.ActiveXObject) {
try {
httpreq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
httpreq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
} else if (window.XMLHttpRequest) {
httpreq = new XMLHttpRequest();
}
return httpreq;
}
function checkIsConnect(url) {
var xmlhttp = getXhr();
xmlhttp.open("GET", url, false);
try {
xmlhttp.send(null);
} catch (e) {
return false;
}
if (xmlhttp.readyState == 4) {
//readyStatud == 4 表示与服务端完成交互,即可以连接
return true;
}
return false;
}
function test() {
var urls = new Array("http://zhw:7001/CommonWeb/",
"http://127.4.0.1:7001/finance/",
"http://zhw:7031/CommonWeb/");
var checkUrl = null;
for (var i = 0; i < urls.length; i++) {
if (checkIsConnect(urls[i] + "testServlet")) {
checkUrl = urls[i];
break;
}
}
if (checkUrl != null) {
//获取到可用服务器地址之后的逻辑处理
} else {
alert("IP检测无可连接的网络服务,请检查网络连接或确认服务端配置!服务端配置地址如下:" + urls);
}
}