ajax判断url是否连通

6 篇文章 0 订阅

昨天遇到了一个判断一个url请求是否是可连通的问题,无法避免的遇到了ajax跨域请求的问题,之后网上查了找到貌似可以行的2个办法,一个使用<script>标签去动态的设置其src属性,<script>不存在跨域问题,试了一遍,没试出来...然后使用第二种方法,调用中间层去判断url是否连通,即ajax不直接去调用url,而是调用一个自己写的中间servlet,把url当做参数传进去,用java判断是否url可用,再返回给页面,代码如下:

循环列表,调用方法ping(id,url);

<%
							int i = 1;
							for (Object o : list) {
								String[] o1 = ((String) o).split("#");
						%>
						<tr class="row<%=i % 2 == 0 ? 1 : 2%>">
							<td width="5%"><%=i%></td>
							<td><%=o1[0]%></td>
							<td id="<%=i%>"><img src="/GMC/img/loading.gif" /></td>
							<script type="text/javascript">
								ping(<%=i%>,"<%=o1[1]%>");
							</script>
						</tr>
						<%
							i++;
							}
						%>
方法ping(id,url)负责用ajax调用中间层判断url是否可用;
<script type="text/javascript">
function ping(id,url){
	$.post(
		"interfaceMonitoringAjax.jsp",
		{
			'url':url
		},
		function(data){
			if($.trim(data)=="success"){
				$("#"+id).html("<img src='/GMC/img/operate/success.jpg'/>");
			}else if($.trim(data)=="error"){
				$("#"+id).html("<img src='/GMC/img/operate/delete.png'/>");
			}
		}
	);
}
</script>

servlet如下,为了节省servlet配置步骤直接调用了jsp,jsp返回是否成功的标识,url做了处理,如果不带http://开头的加上http://addr:port开头:

<%@page import="java.net.HttpURLConnection"%>
<%@page import="java.net.URL"%>
<%
	URL urlStr;
	HttpURLConnection connection;
	int state = -1;

	String url = request.getParameter("url");
	if(url.indexOf("http://")<0){
		if(url.indexOf("/")!=0){
			url = "http://" + request.getRemoteAddr() +":" + request.getServerPort() + "/" + url;
		}else{
			url = "http://" + request.getRemoteAddr() +":" + request.getServerPort() + url;
		}
	}
	String succ = "error";
	int counts = 0;
	if (url == null || url.length() <= 0) {
		succ = "error";
	}
	//连接3次3次不成功判断失败
	while (counts < 3) {
		try {
			urlStr = new URL(url);
			connection = (HttpURLConnection) urlStr.openConnection();
			state = connection.getResponseCode();
			if (state == 200) {
				succ = "success";
			}
			break;
		} catch (Exception ex) {
			counts++;
			continue;
		}
	}
	out.print(succ);
%>


魔狱典狱长 » ajax判断url是否连通


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值