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 相关文章推荐
JavaScipt基本教程之前言
Jan 16 Javascript
js动画效果制件让图片组成动画代码分享
Jan 14 Javascript
js实现的复制兼容chrome和IE
Apr 03 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
Nov 17 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
Aug 08 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
Oct 11 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
Nov 21 Javascript
Vue-resource实现ajax请求和跨域请求示例
Feb 23 Javascript
JS实现标签页切换效果
May 04 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
Aug 31 Javascript
利用jqgrid实现上移下移单元格功能
Nov 07 Javascript
深入浅析JavaScript中的in关键字和for-in循环
Apr 20 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
以文本方式上传二进制文件的PHP程序
2006/10/09 PHP
文件系统基本操作类
2006/11/23 PHP
php处理斐波那契数列非递归方法
2012/02/04 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
深入理解JS正则表达式---分组
2016/07/18 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
angular 内存溢出的问题解决
2018/07/12 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
python中while和for的区别总结
2019/06/28 Python
Django 自动生成api接口文档教程
2019/11/19 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
门卫人员岗位职责
2013/12/24 职场文书
公益活动策划方案
2014/01/09 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
消夏晚会主持词
2015/06/30 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书