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根据属性和index来查找属性值并操作
Jul 25 Javascript
详解js闭包
Sep 02 Javascript
浅谈jquery回调函数callback的使用
Jan 30 Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 Javascript
Node.js中防止错误导致的进程阻塞的方法
Aug 11 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
Aug 23 Javascript
js 点击a标签 获取a的自定义属性方法
Nov 21 Javascript
Node.JS利用PhantomJs抓取网页入门教程
May 19 Javascript
基于ES6 Array.of的用法(实例讲解)
Sep 05 Javascript
详解vue-router 命名路由和命名视图
Jun 01 Javascript
微信小程序保持session会话的方法
Mar 20 Javascript
vue 实现setInterval 创建和销毁实例
Jul 21 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来写记数器(详细介绍)
2006/10/09 PHP
set_include_path在win和linux下的区别
2008/01/10 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
vuejs事件中心管理组件间的通信详解
2017/08/09 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
Redux实现组合计数器的示例代码
2018/07/04 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
Python映射拆分操作符用法实例
2015/05/19 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
python flask搭建web应用教程
2019/11/19 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
部队领导证婚词
2014/01/12 职场文书
公司合作协议范文
2014/10/01 职场文书
Element实现动态表格的示例代码
2021/08/02 Javascript