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 相关文章推荐
DOM 基本方法
Jul 18 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
Oct 12 Javascript
javascript数组去重方法终极总结
Jun 05 Javascript
深入了解Node.js中的一些特性
Sep 25 Javascript
js实现全国省份城市级联下拉菜单效果代码
Sep 07 Javascript
不得不分享的JavaScript常用方法函数集(下)
Dec 25 Javascript
JS深度拷贝Object Array实例分析
Mar 31 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
Dec 25 Javascript
Vue常用指令详解分析
Aug 19 Javascript
PM2自动部署代码步骤流程总结
Dec 10 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
Mar 21 Javascript
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 Vue.js
详解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/01/07 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
php生成word并下载代码实例
2019/03/15 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
2019/09/16 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
一个JavaScript变量声明的知识点
2013/10/28 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
js表单验证实例讲解
2016/03/31 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
JS中的函数与对象的创建方式
2019/05/12 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
Python requests上传文件实现步骤
2020/09/15 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
竞选学生会演讲稿
2014/04/25 职场文书
离婚案件原告代理词
2015/05/23 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
mysql left join快速转inner join的过程
2021/06/30 MySQL
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers