app内嵌h5页面发起负载值相同的重复请求接口返回值不刷新 webview拦截相同参数请求并使用缓存
再描述一下作者遇到此问题的场景 在作者写的一个内嵌到app的h5页面中需要请求一个列表 但是这个列表的返回数据是会随着用户的权限变更而变更的 但是在测试时发现 如果作者处于a权限下 返回了对应的a数组 没有问题 但是当作者在后台将用户权限改为了b权限 此时 请求发起后返回的数组还是a数组 没有返回与b权限对应的b数组 经检查 两次请求 接口负载值是一样的 发送了相同的身份令牌作为参数给接口
然后 诡异的事情来了 作者将请求链接复制出来 使用pc浏览器打开 此时在pc浏览器上则是正常返回了b数组 后续将问题锁定在了webview的机制上 webview本身将这两次请求视为了一次 所以在第二次请求时虽然在控制台看到是请求成功 但是实际上是webview将第一次请求的结果作为缓存给了第二次的请求 因为我们两次请求 发送的参数值是一样的 为了让webview将这两次请求识别为不同的两次请求 需要给每次请求添加一个随机值 这样webview就会将其视为两次不同的请求从而真正意义上的重发了一次请求而不是拿第一次请求的缓存作为结果返回

浙公网安备 33010602011771号