Sejak peningkatan ke iOS 6, kami melihat tampilan web Safari mengambil kebebasan dari $.ajaxpanggilan caching . Ini dalam konteks aplikasi PhoneGap sehingga menggunakan Safari WebView. $.ajaxPanggilan kami adalahPOST metode dan cache disetel ke false {cache:false}, tetapi ini masih terjadi. Kami mencoba menambahkan secara manual TimeStampke header tetapi tidak membantu.
Kami melakukan lebih banyak riset dan menemukan bahwa Safari hanya mengembalikan hasil cache untuk layanan web yang memiliki fungsi tanda tangan yang statis dan tidak berubah dari panggilan ke panggilan. Misalnya, bayangkan fungsi yang disebut sesuatu seperti:
getNewRecordID(intRecordType)
Fungsi ini menerima parameter input yang sama berulang-ulang, tetapi data yang dikembalikan harus berbeda setiap waktu.
Harus terburu-buru Apple untuk membuat iOS 6 zip bersama mengesankan mereka terlalu senang dengan pengaturan cache. Adakah orang lain yang melihat perilaku ini di iOS 6? Jika demikian, apa sebenarnya penyebabnya?
Solusi yang kami temukan adalah mengubah tanda tangan fungsi menjadi sesuatu seperti ini:
getNewRecordID(intRecordType, strTimestamp)
dan kemudian selalu mengirimkan TimeStampparameter juga, dan hanya membuang nilai itu di sisi server. Ini mengatasi masalah ini. Saya harap ini membantu beberapa jiwa miskin lainnya yang menghabiskan 15 jam pada masalah ini seperti yang saya lakukan!