jQuery Ajax只执行一次,但似乎每次都应该调用

时间:2012-02-01 16:39:20

标签: php jquery

目前,我已经设置了一个ajax调用,在更改特定字段时应该执行一个php脚本。该脚本首先在页面加载时执行。

AJAX致电

$j.ajax({url: prod_json_url, dataType: 'json', cache: true,
  beforeSend: function( xhr ) {
    xhr.overrideMimeType( 'text/plain; charset=x-user-defined' );
  },
  success: function(data) { 
    //things to do on success with JSON
  }
});

我的虚拟环境中的所有内容都可以进行测试,但是当我将其部署到其他服务器时会发生以下情况。

1)在页面加载时,我可以查看正在执行的FireBug中的URL并返回正确的JSON响应。记录显示它确实转到要执行的脚本并返回正确的数据。一切都是应有的。

2)然后我点击更新该字段。通过再次在控制台中查看Firebug,正在执行正确的URL,但JSON响应不正确。它保持与页面加载时相同的一个。当我添加日志记录时,它似乎从未实际到达更新的URL。 (与使用更新参数的页面加载相同的URL)。

3)如果我等待一段时间,然后再试一次,它有时会表现得如此,但仅适用于一次执行。

这种行为让我相信这是一个缓存问题。有没有人知道如何解决这个或我应该寻找或检查的变量?数据库是完全相同的,我不知道还有什么可能导致这个。任何帮助是极大的赞赏!如果更多信息也有帮助,请告诉我。

3 个答案:

答案 0 :(得分:0)

将缓存设置为false。看起来像theres客户端缓存

答案 1 :(得分:0)

$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});

尝试从limk

复制此内容

答案 2 :(得分:0)

尝试将当前时间添加到您正在加载数据的网址:

prod_json_url + '?ts=' + $.now()'

高速缓存控制HTML标头显然在IE中的Ajax请求上被忽略,因此cache:false未被提及。这应该可行。

$.now()new Date().getTime();

的快捷方式