gpt4 book ai didi

ajax - 防止 iOS 6 缓存 Ajax POST 请求

转载 作者:行者123 更新时间:2023-12-04 12:23:08 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




8年前关闭。




Possible Duplicate:
Is Safari on iOS 6 caching $.ajax results?



我有一个使用 PhoneGap 的混合应用程序在 Android 和 iOS 上运行良好。但是当我开始在 iOS 6 中进行测试时,我注意到我没有为我的大部分 ajax 调用获取服务器数据——而是从以前的 ajax 调用中获取缓存数据。

到目前为止,我已经尝试了以下选项来禁用缓存 -
  • 包括时间戳作为查询字符串参数
  • $.ajaxSetup({ cache: false });
  • ajax调用内部no-cache = true
  • $.ajaxPrefilter(function (options, originalOptions, jqXHR) {
    options.data =
    jQuery.param($.extend(originalOptions.data||{}, { timeStamp: new
    Date().getTime() })); });

  • 但这些似乎都不起作用。我正在从我的 ajax 调用中调用 Java 操作类 - 它是否与上面列出的方法失败的原因有关?

    最佳答案

    如何修复:有多种方法可以防止缓存请求。推荐的方法是添加一个 no-cache header 。

    这是如何完成的。

    jQuery :

    检查 iOS 6.0 并像这样设置 Ajax header 。

    $.ajaxSetup({ cache: false });

    ZeptoJS :

    检查 iOS 6.0 并像这样设置 Ajax header 。
    $.ajax({
    type: 'POST',
    headers : { "cache-control": "no-cache" },
    url : ,
    data:,
    dataType : 'json',
    success : function(responseText) {…}

    服务器端

    Java :
    httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");

    在将任何数据发送到客户端之前,请确保在页面顶部添加此项。

    .NET
    Response.Cache.SetNoStore();

    或者
    Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);

    PHP
    header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
    header('Pragma: no-cache'); // HTTP 1.0.

    关于ajax - 防止 iOS 6 缓存 Ajax POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12796318/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com