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获得选中文本内容的方法
Dec 02 Javascript
JQuery优缺点分析说明
Jun 09 Javascript
ExtJS实现文件下载的方法实例
Nov 09 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
js实现点击添加一个input节点
Dec 05 Javascript
JavaScript实现解析INI文件内容的方法
Nov 17 Javascript
微信小程序 详解页面跳转与返回并回传数据
Feb 13 Javascript
基于angular2 的 http服务封装的实例代码
Jun 29 Javascript
详解vue-cli3多环境打包配置
Mar 28 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
Apr 22 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
Jul 15 Javascript
vue点击标签切换选中及互相排斥操作
Jul 17 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集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
python进程管理工具supervisor使用实例
2014/09/17 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
大门门卫岗位职责
2013/11/30 职场文书
护士实习生自我鉴定范文
2013/12/10 职场文书
《水上飞机》教学反思
2014/04/10 职场文书
活动总结报告格式
2014/05/09 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
工厂仓库管理员岗位职责
2015/04/09 职场文书
辞职信格式范文
2015/05/13 职场文书
经销商会议开幕词
2016/03/04 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js