javaScript 检测 是否可以连接指定服务器

本文主要讲述如何在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);
			}
		}
时间: 2024-10-18 02:31:34

javaScript 检测 是否可以连接指定服务器的相关文章

SQL Server 复制需要有实际的服务器名称才能连接到服务器.请指定实际的服务器名称

新到一家公司上班,对服务器状况不是很熟悉.昨天Boss让我调查两台服务器是否满足事务复制的条件. 于是直接在服务器上尝试新建发布,结果就出现了标题的错信息:SQL Server 复制需要有实际的服务器名称才能连接到服务器.请指定实际的服务器名称“AAA”.(Replication.Utilities) 心想肯定是服务器改过名字,之前也在群里听说过. 百度上一搜,基本上都是如下的解决方案: IF SERVERPROPERTY('SERVERNAME') <> @@SERVERNAME BEGIN

"SQLServer复制需要有实际的服务器名称才能连接到服务器,请指定实际的服务器名"转

?"SQLServer复制需要有实际的服务器名称才能连接到服务器,请指定实际的服务器名"?2014-06-12 12:01:10 最近在学习SQL SERVER的高级复制技术的时候,遇到一个小问题,就是用本地SQL SERVER连接服务器的数据库时,在查看复制功能的发布服务器时,连接不上,弹出一个错误提示框架,如下: 原来在自己本地的实例是一切操作正常的,一连接到远程服务器时就出现这个问题,后来在网上找了下,发现有这两种情况:一.自己本身的计算机名称修改过,导致与服务器不一致.二.在直

键入的打印机名不正确,或者指定的打印机没有连接到服务器上

网络打印机不能打印,提示"键入的打印机名不正确,或者指定的打印机没有连接到服务器上" 解决如下: 找到连接打印机的机器(不是通过网络连接),右键单击"我的电脑""管理""服务"将服务"Print Spooler"停止后再启动就可以了.

exchange 2010 指定用户邮箱连接CAS服务器

客户端通过RPC连接邮件前端访问服务器,现在CAS和邮箱角色基本都是分离的.默认情况就是随机的.如果一个CAS服务器的邮箱数目较多,就会出现RPC服务死掉.那么outlook客户端就会出现未响应的状态.因此有时需要我们来为部分用户邮箱数据库指定CAS服务器. 以下命令将更新邮箱数据库,以便数据库中的所有邮箱客户端连接通过客户端访问服务器或客户端访问服务器阵列.也可以使用此命令更改客户端用于连接邮箱服务器的客户端访问服务器或客户端访问服务器阵列. Set-MailboxDatabase <Mail

HTTP长连接实现“服务器推”的技术

HTTP长连接实现“服务器推”的技术快速入门及演示示例 在我的印象里HTTP是一种“无状态的协议”,也就是不知道以前请求的历史,无法保留上一次请求的结果.Cookie的诞生,弥补了这个不足,浏览器可以通过本地持久化请求数据来记录上次请求的环境.但这个没有根本上改变HTTP请求本身的这种“客户端请求服务器端相应”模式——客户端是主动的,而服务器是被动的.最近听说有“HTTP长连接”,去探索了一把,果然很有意思,能够实现“服务器推”的这种概念,也就是服务器是主动发送请求,客户端是被动接受请求.关于“

Comet:基于 HTTP 长连接的“服务器推”技术

“服务器推”技术的应用 传统模式的 Web 系统以客户端发出请求.服务器端响应的方式工作.这种方式并不能满足很多现实应用的需求,譬如: 监控系统:后台硬件热插拔.LED.温度.电压发生变化: 即时通信系统:其它用户登录.发送信息: 即时报价系统:后台数据库内容发生变化: 这些应用都需要服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求.“服务器推”技术在现实应用中有一些解决方案,本文将这些解决方案分为两类:一类需要在浏览器端安装插件,基于套接口传送信息,或是使用 RMI.CORBA 进

Android自动连接指定的wifi,免密码或指定密码

一.运行时的状态 遇到一个这样的要求:“不进行扫描操作,怎么对指定的免密码WIFI进行连接(之前没有连接过)”,于是动手写了一个Demo,如图所示未连接成功时的状态,第一个编辑框让用户输入SSID,第二个编辑框输入密码,密码可以根据实例情况输入,也可以不输入密码,因为有些Wifi免密码.这里的免密码不是指可以破解wifi密码.注意图片中手机顶部的wifi图标,是没有的,说明此时并没有打开手机的wifi.在手机上运行状态如下所示: 输入SSID,点击连接后的状态,当手机的wifi没有打开时,程序将

ECMall如何支持SSL连接邮件服务器的配置

首先,主要是ecmall使用的phpmailer版本太低,不支持加密连接. 然后,得对相应代码做一定调整. 1. 覆盖phpmailer 请从附件进行下载: http://files.cnblogs.com/x3d/ecmall_phpmailer_lib.zip 2. 改造lib 涉及到两个lib:mail.lib.php .mail_quequ.lib.php 在这两个类的构造函数中,增加一个参数传递.如Mailer function __construct($from, $email, $

Jenkins构建完成后自动部署到指定服务器

主要分为两步: 1.发送Jenkins构建好的war包到指定服务器 2.执行部署脚本 这里是通过使用  publish over ssh 插件. 插件管理中搜索publish over ssh 安装,完成后系统设置中就可以看到相关设置项了. Jenkins服务器上的公钥需要放到部署项目服务器上,可以使用ssh-add-id命令发送公钥到指定服务器. Passphrase : 私钥的密码 key : 私钥的内容 ,也可以在Pah to key中设置私钥路径 Name : 可以自定义 Hostnam