JS检测是否可以访问公网服务器功能代码
wifi认证开发过程所用到的,源码如下:
注:检测AC是否放行成功,是否可以访问公网阿里云服务器
功能调用:
checkNet().then(function(res){
if(res){
//连网成功
}
}else{
//连网失败
}
})
功能代码:
(function(){
//检测入口
checkNet=function(){
vardef=$.Deferred();
xiuNet(null).then(function(res){
netWork(null).then(function(res){
if(res){
def.resolve(true);
}else{
def.resolve(false);
}
})
})
returndef.promise();
}
//嗅探网络,解决ios弹框接入网络问题
varcheckTime=2;//嗅探次数
xiuNet=function(def){
if(def==null){def=$.Deferred();}
variframe=document.createElement("iframe");
iframe.style.cssText="display:none;width:0px;height:0px;";
document.body.appendChild(iframe);
varua=navigator.userAgent;
if(ua.indexOf("iPhone")!=-1||ua.indexOf("iPod")!=-1||
ua.indexOf("iPad")!=-1){
iframe.src="http://www.baidu.com"+"?timestap="+newDate().getTime();
console.info("嗅探网络----");
if(checkTime>1){
checkTime--;
setTimeout(function(){
xiuNet(def)
},1000);
}else{
def.resolve(true);
}
}else{
def.resolve(false);
}
returndef.promise();
}
//检测网络,是否可以连接公网
varcnetTime=3;//检测网络次数
netWork=function(def){
if(def==null){def=$.Deferred();}
$.ajax({
type:"get",
timeout:2000,
dataType:"jsonp",
jsonp:"callback",
url:'https://jktv.tv/shphone/ver.txt',
success:function(data){},
error:function(xhr){
$("#ddd").html("status:"+xhr.status)
if(xhr.readyState==4&&xhr.status==200){
def.resolve(true);
}else{
if(cnetTime>1){
cnetTime--;
setTimeout(function(){
netWork(def)
},200);
}else{
def.resolve(false);
}
}
}
});
returndef.promise();
}
})();
以上所述是小编给大家介绍的JS检测是否可以访问公网服务器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!