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 相关文章推荐
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
Apr 19 Javascript
关于jquery的多个选择器的使用示例
Oct 18 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
Mar 06 Javascript
jstree的简单实例
Dec 01 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
Jan 23 Javascript
详解基于vue的服务端渲染框架NUXT
Jun 20 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
Aug 07 Javascript
vue中的watch监听数据变化及watch中各属性的详解
Sep 11 Javascript
Vue-router 报错NavigationDuplicated的解决方法
Mar 31 Javascript
Node.js API详解之 os模块用法实例分析
May 06 Javascript
JavaScript实现简单拖拽效果
Sep 15 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采集相关教程之一 CURL函数库
2010/02/15 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
JS实现的RC4加密算法示例
2018/08/16 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
Vue组件系列开发之模态框
2019/04/18 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
2019/05/01 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
tensorflow识别自己手写数字
2018/03/14 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
Python数据存储之 h5py详解
2019/12/26 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
乡镇党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
表扬通报怎么写
2015/01/16 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
服务行业标语口号
2015/12/26 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
在Python中如何使用yield
2021/06/07 Python
Redis性能监控的实现
2021/07/09 Redis
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技
PHP正则表达式之RCEService回溯
2022/04/11 PHP