iOS6又爆Bug Safari缓存POST的Ajax请求结果

近期许多开发人员发现他们的web应用在iOS6下发生一些奇怪的问题,许多用POST实现的诸如用户登陆、请求即时结果的功能在iOS6的Safari下都被缓存了,导致无法切换用户,无法获取最新的即时信息等。

众所周知,POST这种非等冪请求的返回结果在HTML规范中,除非特别声明需要缓存,否则默认是不被浏览器缓存的,而iOS6中返回的json或者xml都是被缓存过的内容。我们有理由相信这是iOS6中的一个小Bug,但是对于开发人员来说却是噩梦。

据了解iOS6中Safari的缓存机制如下:

  • 没有 Cache-Control 或者 Expires headers = iOS6 Safari 会缓存
  • Cache-Control max-age=0 或者 immediate Expires = iOS6 Safari 会缓存
  • Cache-Control: no-cache = iOS6 Safari 会缓存
    所以当前开发人员可以做的就是将所有有POST请求的地方以及返回的内容部分加入no-cache声明。

     

     

    //===================================================================================

    设置无缓存

    <meta http-equiv="pragma" content="no-cache" />

    Response.AppendHeader("Cache-Control", "no-cache");

    设置过期时间

    <meta http-equiv="expires" content="Sunday 26 October 2008 01:00 GMT" />

     

    //===================================================================================

    理正移动办公地址:

    https://itunes.apple.com/us/app/li-zheng-yi-dong-ban-gong/id557136229?mt=8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值