欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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检测是否可以访问公网服务器,希望对大家有所帮助