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 相关文章推荐
jquery 图片 上一张 下一张 链接效果(续篇)
Apr 20 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
Feb 05 Javascript
JavaScript中数据结构与算法(四):串(BF)
Jun 19 Javascript
jQuery蓝色风格滑动导航栏代码分享
Aug 19 Javascript
详解JavaScript基本类型和引用类型
Dec 09 Javascript
js计算系统当前日期是星期几的方法
Jul 14 Javascript
js 判断登录界面的账号密码是否为空
Feb 08 Javascript
JavaScript的六种继承方式(推荐)
Jun 26 Javascript
ng-alain表单使用方式详解
Jul 10 Javascript
微信小程序wepy框架笔记小结
Aug 08 Javascript
小程序实现投票进度条
Nov 20 Javascript
微信小程序用户授权最佳实践指南
May 08 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
php单文件版在线代码编辑器
2015/03/12 PHP
php编程每天必学之验证码
2016/03/03 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
详解在React里使用"Vuex"
2018/04/02 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
使用Python实现博客上进行自动翻页
2017/08/23 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
简单了解python的内存管理机制
2019/07/08 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
面向对象编程OOP的优点
2013/01/22 面试题
家庭教育先进个人事迹材料
2014/01/24 职场文书
广告业务员岗位职责
2014/02/06 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
2015年中秋节主持词
2015/07/30 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
Ajax实现三级联动效果
2021/10/05 Javascript