JS检测是否可以访问公网服务器功能代码


Posted in Javascript onJune 19, 2017

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

Javascript 相关文章推荐
javascript 表单规则集合对象
Jul 21 Javascript
悄悄用脚本检查你访问过哪些网站的代码
Dec 04 Javascript
JQueryEasyUI datagrid框架的进阶使用
Apr 08 Javascript
EasyUI Pagination 分页的两种做法小结
Jul 09 Javascript
JS组件系列之JS组件封装过程详解
Apr 28 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
Jun 09 jQuery
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
对vue v-if v-else-if v-else 的简单使用详解
Sep 29 Javascript
JavaScript实现美化滑块效果
May 17 Javascript
seajs和requirejs模块化简单案例分析
Aug 26 Javascript
在vue中阻止浏览器后退的实例
Nov 06 Javascript
前端JavaScript大管家 package.json
Nov 02 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
Jun 19 #Javascript
详解AngularJS脏检查机制及$timeout的妙用
Jun 19 #Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 #Javascript
jQuery 实现双击编辑表格功能
Jun 19 #jQuery
Web制作验证码功能实例代码
Jun 19 #Javascript
angularjs+bootstrap实现自定义分页的实例代码
Jun 19 #Javascript
详解vue服务端渲染(SSR)初探
Jun 19 #Javascript
You might like
BBS(php & mysql)完整版(二)
2006/10/09 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
特殊字符、常规符号及其代码对照表
2006/06/26 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
linux 后台运行node服务指令方法
2018/05/23 Javascript
泛谈JS逻辑判断选择器 || &&
2019/05/24 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python列出目录下指定文件与子目录的方法
2015/07/03 Python
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
python写一个md5解密器示例
2018/02/23 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
致长跑运动员加油稿
2014/02/20 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
天坛导游词
2015/02/02 职场文书
公司安全管理制度范本
2015/08/05 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android