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",
cache: false,
url: "https://jktv.tv/shphone/ver.txt"+ "?timestap=" + new Date().getTime(),
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检测是否可以访问公网服务器的更多相关文章

  1. 阿里云服务器apache服务器局域网访问公网访问配置

    阿里云服务器apache服务器局域网访问公网访问配置 一.总结 一句话总结: 1.再总结-------------------------------------------------------- ...

  2. 爬虫笔记之JS检测浏览器开发者工具是否打开

    在某些情况下我们需要检测当前用户是否打开了浏览器开发者工具,比如前端爬虫检测,如果检测到用户打开了控制台就认为是潜在的爬虫用户,再通过其它策略对其进行处理.本篇文章主要讲述几种前端JS检测开发者工具是 ...

  3. 访问公网WebService服务

    接下来,我们演示如何访问公网webservice服务. 我们以访问 http://www.webxml.com.cn/zh_cn/index.aspx 为例,主要演示手机号码归属地查询服务(使用说明书 ...

  4. ARM 虚拟机使用同一个公共 IP 访问公网的解决方案

    ARM 虚拟机使用同一个公共 IP 访问公网的解决方案 2017-2-21 作者 Azure 目前有两种部署模型:资源管理器 ARM 和经典部署模型 ASM.ASM 的虚拟机默认公用云服务的 VIP ...

  5. crul 命令访问公网 dns解析错误 程序报错

    今天机房几台服务器都无法访问公网接口,原因是——解析公网域名出错,具体情况如下 ping  公网ip或者域名  都没有问题 curl 公网域名 出错 curl -4  访问公网域名没有问题 综合分析 ...

  6. 年轻的樵夫哟,你掉的是这个免费 8 核 4G 公网服务器,还是这个随时可用的 Docker 实验平台?

    小孩子才做选择,成年人全都要.那么我们现在就来看看如何获得一台免费的 8 核 4G 公网 Docker 实验平台服务器. Play With Docker 直接打开 https://labs.play ...

  7. js 检测屏幕分辨率

    js 检测屏幕分辨率 class screenChecker { constructor() { this.screen = window.screen; this.fullscreen = fals ...

  8. 如何使用 js 检测控制台被用户打开了

    如何使用 js 检测控制台被用户打开了 js solutions 监听 F12 事件 监听键盘快捷键组合 Ctrl + Shift + I Option + Command + I Object.to ...

  9. 如何使用 js 检测页面上全局变量

    如何使用 js 检测页面上全局变量 js 检测页面全局变量脚本 <!DOCTYPE html> <html lang="zh-Hans"> <head ...

随机推荐

  1. jQuery Callback函数的用法

    在动画100%完成后,调用callback函数 语法如下 $(selector).hide(speed, callback); <!-- html部分 --> <button> ...

  2. MySQL数据库(5)----删除或更新已有行

    有时候,会需要删除某些行,或者修改其内容.这是候便需要用到DELETE语句和UPDATE语句. 1. DELETE 语句的基本格式如下所示: DELETE FROM tbl_name WHERE wh ...

  3. 转:hive-列转行和行转列

    1. 假设我们在hive中有两张表,其中一张表是存用户基本信息,另一张表是存用户的地址信息等,表数据假设如下: user_basic_info: id name 1 a 2 b 3 c 4 d use ...

  4. 各种优化方法总结比较(sgd/momentum/Nesterov/adagrad/adadelta)

    前言 这里讨论的优化问题指的是,给定目标函数f(x),我们需要找到一组参数x,使得f(x)的值最小. 本文以下内容假设读者已经了解机器学习基本知识,和梯度下降的原理. SGD SGD指stochast ...

  5. 02_dubbo实例_多版本号

    [多版本作用] 当一个接口实现,出现不兼容升级时,可以用版本号过渡. 版本号不同的服务之间不能引用. [版本迁移方式] 1.在低压时间段,先升级一半Provider为新版本. 2.再将所有消费者升级为 ...

  6. Thinkphp中在本地测试很好,在服务器上出错,有可能是因为debug缓存的问题

    define('APP_DEBUG',false); 这个设置从true改为false后,一定要清空缓存,否则会出错.

  7. MySQL案例01:Last_SQL_Errno: 1755 Cannot execute the current event group in the parallel mode

    周五同事监控报警,有个MySQL从库复制状态异常,让我帮忙排查下,经过排查发现是MySQL5.6并行复制的一个Bug所致,具体处理过程如下: 一.错误信息 登录mysql从库服务器,检查复制状态 my ...

  8. RMAN备份等级详解

    (2011-06-27 11:38:28) 转载▼ 标签: 杂谈 分类: oracle 在rman增量备份中,有差异增量和累积增量的概念 1.概念 差异增量:是备份上级及同级备份以来所有变化的数据块, ...

  9. ARC中用代码检测一个对象有没有释放掉

    ARC中用代码检测一个对象有没有释放掉 你试过在ARC中用代码检测对象有没有释放掉这种事情呢?即使你想过肯定也不知道怎么去实现,因为,这里会用到一个你基本上没怎么接触过的类:NSHashTable. ...

  10. Python学习---重点模块之shelve

    简单示例 import shelve f = shelve.open(r'shelve.txt') f['info'] = {'name':'ftl', 'age':23, 'sex': 'male' ...