欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 工具JS:纯前端判断运行环境是公司内网还是公网环境

工具JS:纯前端判断运行环境是公司内网还是公网环境

2024/10/24 6:29:47 来源:https://blog.csdn.net/weixin_44461275/article/details/139522216  浏览:    关键词:工具JS:纯前端判断运行环境是公司内网还是公网环境

工具JS:纯前端判断运行环境是公司内网还是公网环境

判断内网方式一般就2种:

  • 后端出接口,判断请求头内ip地址,是否公司内网的ip即可
  • 前端项目内处理,利用iframe、script、img等标签支持跨域(本文介绍)
  • 如果公司有前端node项目,前端可以自己写一个接口也行(很多公司都没搭建)

逻辑:

  1. 内网环境的项目内新建一个js文件(比如:测试开发环境)
  2. 生产环境调用内网的js文件地址
  3. 动态创建js标签,调用成功执行onload,调用失败执行onerror

创建js文件:
vue、react放在public文件夹内:(内容可以为空)
创建文件:public/isIntranet.js

封装api:

// 内网查询
export const checkIntranet = () => {return new Promise((resolve, reject) => {const body = document.getElementsByTagName('body')[0];// 动态添加script标签const script = document.createElement('script');script.type = 'text/javascript';script.src = '//xxxxxx.com/isIntranet.js?_t=' + Math.random() * 1e18;body.appendChild(script);script.onload = () => {body.removeChild(script);resolve(true)};script.onerror = () => {body.removeChild(script);resolve(false)};});
}

调用:

// 引用
import { checkIntranet } from '@/api/utils';// 判断
const isInternet = await checkIntranet();
if (!isInternet) {message.warning('请使用内网或VPN访问');setTimeout(() => {this.props.history.push('/login');}, 2000)return;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com