iOS6又爆Bug - Safari緩存POST的Ajax請求結果
近期許多開(kāi)發(fā)人員發(fā)現他們的web應用在iOS6下發(fā)生一些奇怪的問(wèn)題,許多用POST實(shí)現的諸如用戶(hù)登陸、請求即時(shí)結果的功能在iOS6的Safari下都被緩存了,導致無(wú)法切換用戶(hù),無(wú)法獲取最新的即時(shí)信息等。
本文引用地址:http://dyxdggzs.com/article/137713.htm眾所周知,POST這種非等冪請求的返回結果在HTML規范中,除非特別聲明需要緩存,否則默認是不被瀏覽器緩存的,而iOS6中返回的json或者xml都是被緩存過(guò)的內容。我們有理由相信這是iOS6中的一個(gè)小Bug,但是對于開(kāi)發(fā)人員來(lái)說(shuō)卻是噩夢(mèng)。
據了解iOS6中Safari的緩存機制如下:
沒(méi)有 Cache-Control 或者 Expires headers = iOS6 Safari 會(huì )緩存
Cache-Control max-age=0 或者 immediate Expires = iOS6 Safari 會(huì )緩存
Cache-Control: no-cache = iOS6 Safari 不會(huì )緩存
所以當前開(kāi)發(fā)人員可以做的就是將所有有POST請求的地方以及返回的內容部分加入no-cache聲明。
評論