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 相关文章推荐
addRule在firefox下的兼容写法
Nov 30 Javascript
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
Feb 03 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
Aug 07 Javascript
深入理解javascript中defer的作用
Dec 11 Javascript
jQuery页面加载初始化常用的三种方法
Jun 04 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
Oct 14 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
Jun 21 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
Sep 27 Javascript
Node.js操作redis实现添加查询功能
May 25 Javascript
详解node-ccap模块生成captcha验证码
Jul 01 Javascript
vue实现局部刷新的实现示例
Apr 16 Javascript
vue slot与传参实例代码讲解
Apr 28 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
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
js arguments.callee的应用代码
2009/05/07 Javascript
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
JS判断iframe是否加载完成的方法
2016/08/03 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Python实现获取网站PR及百度权重
2015/01/21 Python
python标准算法实现数组全排列的方法
2015/03/17 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
管理部部长岗位职责
2013/12/05 职场文书
商务会议邀请函
2014/01/09 职场文书
校长四风对照检查材料
2014/09/27 职场文书
环保建议书作文300字
2015/09/14 职场文书
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技
MySQL事务的隔离级别详情
2022/07/15 MySQL
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript