creeperyang / blog

前端博客,关注基础知识和性能优化。
MIT License
2.63k stars 211 forks source link

日常问题记录 #62

Open creeperyang opened 4 months ago

creeperyang commented 4 months ago

1. Charles等抓包工具替换response失败

  1. 描述: map locale 功能去拦截接口请求,发现浏览器请求失败(无response)。

  2. 原因:因为接口请求跨域,首先会有 preflight(Options)请求,此时这个请求也被map locale拦截了,导致preflight失败,从而导致跨域请求失败。

  3. 解决:过滤掉 preflight 请求。

18boys commented 4 months ago

已收到,稍候会处理best wish~

Lumersgo commented 4 months ago

您的邮件我已收到,会尽快回复~Hello,I have received your email ,  I'll get back to you ASAP.

woshiHhnecX commented 4 months ago

已收到~

creeperyang commented 4 months ago

2. 某些版本iOS(比如17.5.1)webview 出现缓存 404 响应,导致页面始终白屏的情况

  1. 描述:发现非低频率的h5页面白屏现象,主要集中在 iOS某些版本。深入debug发现,打开页面后,某些js资源404(路径可正常访问,404实则由缓存导致,即缓存了上次请求的404响应)。
  2. 原因:这些版本的iOS webview的缓存机制怪异(404理论上不应该长期缓存、CDN默认也不会设置404的缓存)。导致资源404(第一次404)的原因是发版。
  3. 临时解决方案:调整发版脚本,首先上传JS/CSS等静态资源,最后上传html。防止发版过程中,访问了最新html却没有最新静态资源的404.
  4. 进一步:需要研究究竟是CDN缓存设置有问题,还是webview缓存设置有问题。