JS检测是否可以访问公网服务器功能代码
程序员文章站
2022-06-24 16:59:17
wifi认证开发过程所用到的,源码如下:
注:检测ac是否放行成功,是否可以访问公网阿里云服务器
功能调用:
checknet().then(function...
wifi认证开发过程所用到的,源码如下:
注:检测ac是否放行成功,是否可以访问公网阿里云服务器
功能调用:
checknet().then(function(res) { if(res) { //连网成功 } } else { //连网失败 } })
功能代码:
(function() { //检测入口 checknet = function() { var def = $.deferred(); xiunet(null).then(function(res) { network(null).then(function(res) { if(res) { def.resolve(true); } else { def.resolve(false); } }) }) return def.promise(); } //嗅探网络,解决ios弹框接入网络问题 var checktime = 2; //嗅探次数 xiunet = function(def) { if(def == null) {def = $.deferred();} var iframe = document.createelement("iframe"); iframe.style.csstext = "display:none;width:0px;height:0px;"; document.body.appendchild(iframe); var ua = navigator.useragent; if(ua.indexof("iphone") != -1 || ua.indexof("ipod") != -1 || ua.indexof("ipad") != -1) { iframe.src = "http://www.baidu.com" + "?timestap=" + new date().gettime(); console.info("嗅探网络----"); if(checktime > 1) { checktime--; settimeout(function() { xiunet(def) }, 1000); } else { def.resolve(true); } } else { def.resolve(false); } return def.promise(); } //检测网络,是否可以连接公网 var cnettime = 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); } } } }); return def.promise(); } })();
以上所述是小编给大家介绍的js检测是否可以访问公网服务器,希望对大家有所帮助