js检测是否可以访问公网服务器
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检测是否可以访问公网服务器的更多相关文章
- 阿里云服务器apache服务器局域网访问公网访问配置
阿里云服务器apache服务器局域网访问公网访问配置 一.总结 一句话总结: 1.再总结-------------------------------------------------------- ...
- 爬虫笔记之JS检测浏览器开发者工具是否打开
在某些情况下我们需要检测当前用户是否打开了浏览器开发者工具,比如前端爬虫检测,如果检测到用户打开了控制台就认为是潜在的爬虫用户,再通过其它策略对其进行处理.本篇文章主要讲述几种前端JS检测开发者工具是 ...
- 访问公网WebService服务
接下来,我们演示如何访问公网webservice服务. 我们以访问 http://www.webxml.com.cn/zh_cn/index.aspx 为例,主要演示手机号码归属地查询服务(使用说明书 ...
- ARM 虚拟机使用同一个公共 IP 访问公网的解决方案
ARM 虚拟机使用同一个公共 IP 访问公网的解决方案 2017-2-21 作者 Azure 目前有两种部署模型:资源管理器 ARM 和经典部署模型 ASM.ASM 的虚拟机默认公用云服务的 VIP ...
- crul 命令访问公网 dns解析错误 程序报错
今天机房几台服务器都无法访问公网接口,原因是——解析公网域名出错,具体情况如下 ping 公网ip或者域名 都没有问题 curl 公网域名 出错 curl -4 访问公网域名没有问题 综合分析 ...
- 年轻的樵夫哟,你掉的是这个免费 8 核 4G 公网服务器,还是这个随时可用的 Docker 实验平台?
小孩子才做选择,成年人全都要.那么我们现在就来看看如何获得一台免费的 8 核 4G 公网 Docker 实验平台服务器. Play With Docker 直接打开 https://labs.play ...
- js 检测屏幕分辨率
js 检测屏幕分辨率 class screenChecker { constructor() { this.screen = window.screen; this.fullscreen = fals ...
- 如何使用 js 检测控制台被用户打开了
如何使用 js 检测控制台被用户打开了 js solutions 监听 F12 事件 监听键盘快捷键组合 Ctrl + Shift + I Option + Command + I Object.to ...
- 如何使用 js 检测页面上全局变量
如何使用 js 检测页面上全局变量 js 检测页面全局变量脚本 <!DOCTYPE html> <html lang="zh-Hans"> <head ...
随机推荐
- C# 索引器的使用
索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的. 索引器和数组比较: (1)索引器的索引值(Index)类型不受限制 (2)索引器允许重载 ...
- Spring Boot Async异步执行
异步调用就是不用等待结果的返回就执行后面的逻辑,同步调用则需要等带结果再执行后面的逻辑. 通常我们使用异步操作都会去创建一个线程执行一段逻辑,然后把这个线程丢到线程池中去执行,代码如下: Execut ...
- c++ 判断是64还是32位系统
1.IsWow64Process 确定指定进程是否运行在64位操作系统的32环境(Wow64)下. 语法 BOOL WINAPI IsWow64Process( __in HANDLE hProces ...
- Linux系统下安装Gitlab
Linux系统下安装Gitlab 一.简介 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与 ...
- SQL 截取字符
select SUBSTRING('123,abcdefg',charindex(',','123,abcdefg',0)+1,LEN('123,abcdefg')-charindex(',','12 ...
- 如何判断单链表是否存在环 & 判断两链表是否相交
给定一个单链表,只给出头指针h: 1.如何判断是否存在环? 2.如何知道环的长度? 3.如何找出环的连接点在哪里? 4.带环链表的长度是多少? 解法: 1.对于问题1,使用追赶的方法,设定两个指针sl ...
- [使用教程]cocostudio之UI编辑器动画模式
有坑! 1. 使用 (1)点击动画模式按钮,进入动画模式 (2)[关键1]左下角动作列表,右键添加动画 (3)[关键2]渲染区选择要动画的控件,右键编辑动画 * 可以看到最下面多了关键帧 (4)在右边 ...
- Ubuntu中的两种link的区别
Ubuntu中有两种link(windows世界中文件的“快捷方式”),一个是hard link(硬链接),另一个是symbolic link(软链接). 那么,什么是硬链接,什么又是软链接呢? 硬链 ...
- Prototype Pattern
- ZT 设计模式六大原则(6):开闭原则
ZT 设计模式六大原则(6):开闭原则 分类: 设计模式 2012-02-27 08:48 24870人阅读 评论(72) 收藏 举报 设计模式扩展框架编程测试 定义:一个软件实体如类.模块和函数应该 ...