背景
近期有开发一个广告模块,用来在用户loading的时候展示一些新品动图,接口开发完成后,自测冒烟都跑的没问题,提测后突然接到测试的反馈,有个接口调不通,浏览器用的chrome。
现场情况
调用接口查询时出现以下弹窗:
弹窗提示:
请求失败:600 网络未连接或者请求配置发生错误
异常接口:
api/service-mall-admin/admin/mart_ad_config/list?pageNo=1&pageSize=10&adName=1
请求方式:GET
注意
:测试同事反馈,此接口不加adName字段访问是正常的,加了之后就报错无返回。
处理过程
首先自测时都是可以的:
通过我自己的浏览器调接口没问题;
测试测得其他接口都没问题;
通过postman调接口没问题;
后台日志显示测试的请求没有到达接口网关;
可以确定代码时没问题的,测试的请求根本没有发生网络调用
初步定位
测试同事的网络或者浏览器配置有问题
1.更换浏览器重试,问题得到解决,同时验证了网络没问题。
所以单独增加了参数adName
后,chrome浏览器有做了什么操作么。
我也使用的chrome浏览器却没有重现这个问题,直接找测试要到了他的chrome插件列表,大概率是插件引起的。
插件列表如下:
对,就是图中画框的这个插件,尝试插件开关后,到达这个插件时,接口通了。
最终结论
测试浏览器中装了额外的插件,但是接口添加了adName字段后,无法访问。
一块看看这个uBlock Origin
插件是做什么的。
一款高效的请求过滤工具:占用极低的内存和CPU,和其他常见的过滤工具相比,它能够加载并执行上千条过滤规则。用法:点击弹出窗口中的电源按钮,uBlock₀ 将对当前网页永久禁用/启用过滤功能。 它只控制当前网页的请求过滤,而不是一个全局开关。 它只控制当前网页的请求过滤,而不是一个全局开关。
看这个描述是过滤弹窗小广告的,针对网页的请求过滤,由于添加了adName字段,导致请求被过滤。
修改方向:将包含ad字段名的,修改成config开头的字段名称,之后避免使用ad开头的字段。