前端通过http请求外网反馈,判断当前是内网还是外网

2022-07-27 08:29:19

遇到一个需求,项目私有化部署后,不能使用外网,无法使用外部资源链接。

需要程序判断当前环境是外网还是内网,以兼容内、外网两种使用方式,分别做处理。

      // 当前vue项目,所以没有使用jquery、ajax。而使用原生httpRequest
      let that = this
      // 第一步:建立所需的对象
      var httpRequest = new XMLHttpRequest()
      // 第二步,获取一个公网链接,可以是你原本要访问的地址
      httpRequest.open('GET', 'https://lbs.netease.im/lbs/webconf.jsp', true)
      // 第三步,设置响应超时时间
      httpRequest.timeout = 3000

      // 请求成功,使用公网方式
      httpRequest.onload = function () {
        // 请求完成。在此进行处理。
        if (httpRequest.readyState === 4 && httpRequest.status === 200) {
          param.isPublic = true
          that.initIMByType(param)
        }
      }
      // 响应超时,使用内网方式
      httpRequest.ontimeout = function (e) {
        // XMLHttpRequest 超时。在此做某事。
        param.isPublic = false
        that.initIMByType(param)
      }

      // 第四步:发送请求
      httpRequest.send()
  • 作者:清酒白粥
  • 原文链接:https://blog.csdn.net/qq_36030737/article/details/108607054
    更新时间:2022-07-27 08:29:19