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检测是否可以访问公网服务器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!