使用getJSON时,ajaxStart在后续请求中失败

时间:2009-09-09 18:00:16

标签: jquery ajax getjson

我正在尝试将getJson调用的ajaxStart和ajaxStop事件用于我的网络服务器。 ajaxStart事件在第一个请求时触发,但不在后续请求中触发。 encID确保每个请求的URL有点独特。它在Firefox 3.5或IE 7上不起作用。在firebug中,我可以看到getJSON请求正在触发并完成。有什么想法吗?

这是我的ajax事件绑定。

$('#ajaxLoader').ajaxStart(function(){    
   $(this).show();
}).ajaxStop(function(){
   $(this).hide();
});

这是我的getJSON电话。

$.getJSON(location.protocol + '//' + location.host + '/enc-comment/get?format=json&c=?' + '&encId=' + encId,
function(data){
   // change text of a div
});

如果我使用.ajax GET或POST切换getJSON调用,一切正常。

3 个答案:

答案 0 :(得分:0)

试试这个,再用你的URL传递一个额外的参数:

?+"randomParam="+(Math.random() * 1000)

答案 1 :(得分:0)

我猜Yashwant指的是使用随机参数中断自动浏览器缓存。

更好的方法是使用$ .ajaxSetup()

$.ajaxSetup({ cache: false });

这将阻止所有ajax调用的浏览器缓存。

答案 2 :(得分:0)

添加此声明:

$.ajaxPrefilter(function (options){options.global = true;});

Bug Ticket:http://bugs.jquery.com/ticket/8338

这是因为你正在做一个JSONP请求。