码迷,mamicode.com
首页 > Web开发 > 详细

js检测是否可以访问公网服务器

时间:2017-06-19 15:17:04      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:http   class   嗅探   creat   false   end   tps   源码   doc   

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检测是否可以访问公网服务器

标签:http   class   嗅探   creat   false   end   tps   源码   doc   

原文地址:http://www.cnblogs.com/holdon521/p/7048632.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!