这篇文章主要介绍了JS如何检测是否可以访问公网服务器功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
成都创新互联公司专注于常州网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供常州营销型网站建设,常州网站制作、常州网页设计、常州网站官网定制、成都微信小程序服务,打造常州网络公司原创品牌,更为您提供常州网站排名全网营销落地服务。
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如何检测是否可以访问公网服务器功能”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!