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闭包的理解和实例
Aug 12 Javascript
javascript 单例/单体模式(Singleton)
Apr 07 Javascript
js实现文字滚动效果
Mar 03 Javascript
jquery属性,遍历,HTML操作方法详解
Sep 17 Javascript
es6 字符串String的扩展(实例讲解)
Aug 03 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
Aug 22 Javascript
基于Angularjs-router动态改变Title值的问题
Aug 30 Javascript
微信小程序使用component自定义toast弹窗效果
Nov 27 Javascript
ES6入门教程之Array.from()方法
Mar 23 Javascript
详解Vue前端生产环境发布配置实战篇
May 07 Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
JS FormData对象使用方法实例详解
Feb 12 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 观察者模式的实现代码
2013/05/10 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
PHP加密解密类实例代码
2016/07/20 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
set在python里的含义和用法
2019/06/24 Python
Python如何计算语句执行时间
2019/11/22 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
pytorch 修改预训练model实例
2020/01/18 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
香港士多网上超级市场:Ztore
2021/01/09 全球购物
工作自我评价怎么写
2014/01/29 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
工厂无线对讲系统解决方案
2022/02/18 无线电
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL