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获取url参数的使用扩展实例
Dec 29 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
Apr 01 Javascript
Node.js抓取中文网页乱码问题和解决方法
Feb 10 Javascript
JS控制弹出新页面窗口位置和大小的方法
Mar 02 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
Jun 23 Javascript
javascript实现tab切换特效
Nov 12 Javascript
一分钟理解js闭包
May 04 Javascript
jQuery学习笔记之回调函数
Aug 15 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
Feb 17 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
Jun 22 Javascript
如何在JavaScript中优雅的提取循环内数据详解
Mar 04 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
Jul 17 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/02/04 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
PHP strripos函数用法总结
2019/02/11 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
基于javascript实现图片切换效果
2016/04/17 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
python list语法学习(带例子)
2013/11/01 Python
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
python的pip安装以及使用教程
2018/09/18 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
python之拟合的实现
2019/07/19 Python
python super的使用方法及实例详解
2019/09/25 Python
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
简单的JAVA编程面试题
2013/03/19 面试题
行政助理工作职责范本
2014/03/04 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP