use*_*131 7 safari ajax caching cordova ios6
我有一个混合应用程序使用PhoneGap它在Android和iOS上运行良好.但是当我开始在iOS 6中测试时,我注意到我没有获得大多数ajax调用的服务器数据 - 而是从先前的ajax调用中获取缓存数据.
到目前为止,我已尝试以下选项来禁用缓存 -
$.ajaxSetup({ cache: false });no-cache = true$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
options.data =
jQuery.param($.extend(originalOptions.data||{}, { timeStamp: new
Date().getTime() })); });但这些似乎都没有奏效.我从我的ajax调用中调用Java动作类 - 它是否与上面列出的方法失败的原因有关?
从这里开始
如何解决:有多种方法可以防止缓存请求.建议的方法是添加no-cache标头.
这就是它的完成方式.
jQuery:
检查iOS 6.0并设置这样的Ajax标头.
$.ajaxSetup({ cache: false });
Run Code Online (Sandbox Code Playgroud)
ZeptoJS:
检查iOS 6.0并设置这样的Ajax标头.
$.ajax({
type: 'POST',
headers : { "cache-control": "no-cache" },
url : ,
data:,
dataType : 'json',
success : function(responseText) {…}
Run Code Online (Sandbox Code Playgroud)
服务器端
Java:
httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
Run Code Online (Sandbox Code Playgroud)
确保在将任何数据发送到客户端之前将其添加到页面顶部.
.净
Response.Cache.SetNoStore();
Run Code Online (Sandbox Code Playgroud)
要么
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
Run Code Online (Sandbox Code Playgroud)
PHP
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10131 次 |
| 最近记录: |