问题背景:前后端分离情况下后端开发测试需要配置hosts , 有此问题的人员有RD , QA , PM , User测试环境由于用户使用这种配置导致无法使用线上系统发起单据影响用户使用 , 同时让用户误以为系统出问题而导致增加沟通成本 。
问题原理:用户访问的是线上 , 但是由于本地hosts影响 , 浏览器加载的资源是测试环境的 , 导致实际发出的请求是由测试环境发出的 , 因此用户会以为系统出现问题 。
目标:在用户使用出现问题时 , 给予明确提示和解决方案 , 减少与RD和PM的沟通成本 。
方案调研:
1.后端校验hosts ,
问题:JAVA目前可以做到本地hosts检测 , 由于后端程序是部署到服务器上的 , 因此无法满足各个PC端的hosts校验 。PASS
- 前端校验hosts
3.C,Python实现
网上有相应的实现思路但是需要客户端安装相应脚本工具 , 实现难度较大(网上思路 , 无法根本解决问题 , PASS)
4.内网单点登录实现
inpass(内网单点登录系统)目前天生支持对应域名后缀跳转 , 但是对于线上环境 , 但是发起请求却是从测试环境发起的无法判断 , 因此PASS
现在我们重新来看一下问题:
【前后端hosts配置访问问题解决思路】用户访问的是线上 , 由用户本地环境问题导致系统不可用 , 因此可以对加载的本地环境进行检测 ,
由于大部分获取数据接口是采用相对路径 , 提交单据或者弹框单据等是绝对路径 , 由此我们需要拿到用户访问的线上系统域名与发起单据请求的域名进行对比 ,
如果都是以xxxx-inc.com结尾或者以xxxtest.cn结尾的则表示用户的环境是正确的 , 否则是错误的.
由上所述 , 我们可以知道 , 解决方案如下:
1.前端对发起单据或者需要绝对路径匹配的ajax请求进行域名匹配 , 匹配成功 , 则正常发起 , 否则弹框提示或者在控制台打log , 提示用户本地环境有问题...
方案优点:
1.简单 , 后端不用动 , 前端只要简单开发就可以解决问题 , 代码量不超过10行 。
2.上述逻辑代码不需要部署到线上即可解决问题 。即使部署到线上也没有问题 , 错误提示只在测试环境中产生 , 用户只要本地环境是正确的即可通过该逻辑 。
3.给用户明确提示之后可减少沟通成本 , 让用户体验更好 。
本文由博客一文多发平台 https://openwrite.cn?from=article_bottom 发布!
程序男-专注程序开发 , 功能框架组件设计 , 性能优化等领域 , 4年企业系统开发经验
推荐阅读
- TCP/IP和Socket开发经验分享
- 83年安宫牛黄丸为什么那么贵,安宫牛黄丸哪年以前是真的
- 电饼铛煎饼需要放油吗 电饼铛预热前放油还是预热后放油
- 浙江,梅花远去 当前茶树疫病防治意见
- 欧洲最高的烟囱 最大的烟囱
- 滇红茶,睡前可以喝吗?
- 梦见一只凤凰落在我面前 梦见凤凰落在我面前是吉兆吗?
- 2022年除夕前出生的宝宝是属牛宝宝还是虎宝宝,除夕前生的孩子属什么
- 结婚三金属于婚前财产还是婚后财产,结婚三金属于夫妻共同财产吗
- 大寒过后养生方法 早睡晚起睡前洗脚