>  기사  >  웹 프론트엔드  >  JavaScript는 공용 네트워크 서버 기능 코드에 액세스할 수 있는지 감지합니다.

JavaScript는 공용 네트워크 서버 기능 코드에 액세스할 수 있는지 감지합니다.

陈政宽~
陈政宽~원래의
2017-06-28 14:33:071656검색

AC가 성공적으로 해제되었는지, 공용 네트워크 Alibaba Cloud 서버에 액세스할 수 있는지 확인하세요. 공용 네트워크 서버 접속 가능 여부를 감지하는 JS 함수 코드를 공유해드리겠습니다.

WiFi 인증 개발 과정은 다음과 같습니다.

참고 : AC가 성공적으로 해제되었는지, 공용 네트워크 서버에 액세스할 수 있는지 확인하세요. Net Alibaba Cloud Server

함수 호출:

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 테스트입니다. 모든 분들께 도움이 되기를 바랍니다. 궁금한 사항이 있으시면 메시지를 남겨주시면 시간 맞춰 답변해 드리겠습니다. 또한 Script House 웹사이트를 지원해 주시는 모든 분들께 감사의 말씀을 전하고 싶습니다!

위 내용은 JavaScript는 공용 네트워크 서버 기능 코드에 액세스할 수 있는지 감지합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.