轻松应对前端区分内外网问题

160 阅读1分钟

问题背景

在企业应用开发过程中,会经常遇到内网和外网的问题。最近就刚好遇到,在系统中需要跳转到另外一个系统,该系统内网和外网的地址不同,因为需要进行区分再做跳转。

解决方法

用img标签,检测url地址是否可以访问

首先定义一个检测函数

export const checkWebSiteOnline = (config) => {
  var img = document.createElement('img')
  img.onload = function () {
    if (typeof config.success === 'function') config.success(config.url)
  }
  img.onerror = function () {
    if (typeof config.error === 'function') config.error(config.url)
  }
  img.src = config.url + (config.isImage ? '' : '/favicon.ico')
  img.remove()
}

使用该函数

checkWebSiteOnline({
  url: aurl,
  success: () => {
    console.log('success====>>')
  },
  error: (error) => {
    console.log('error====>>', error)
    aurl = burl
  }
})

采用img方式的好处是可以避免跨域问题

如何你有更好的方案,欢迎与我交流