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

发布于 2024-08-04 20:33:55 字数 621 浏览 5 评论 0原文

我正在尝试将 ajaxStart 和 ajaxStop 事件与 getJson 调用一起使用到我的网络服务器。 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 调用,则一切正常。

I'm trying to use the ajaxStart and ajaxStop events with getJson calls to my webserver. The ajaxStart event is triggered on the first request, but not on subsequent requests. The encID ensures that each requested url is somewhat unique. It doesn't work on Firefox 3.5 or IE 7. In firebug, I can see the the getJSON requests are firing and completing. Any ideas?

Here are my ajax event bindings.

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

Here is my getJSON call.

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

If I switch the getJSON call with a .ajax GET or POST, everything works fine.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无畏 2024-08-11 20:33:55

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

一个更漂亮的方法是使用 $.ajaxSetup()

$.ajaxSetup({ cache: false });

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

I'm guessing Yashwant is referring to interrupting automatic browser caching using a random parameter.

A prettier way of doing this is to just use $.ajaxSetup()

$.ajaxSetup({ cache: false });

This will block browser caching for all your ajax calls.

千笙结 2024-08-11 20:33:55

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

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

Try this, pass one more extra parameter with your URL:

?+"randomParam="+(Math.random() * 1000)
儭儭莪哋寶赑 2024-08-11 20:33:55

添加此语句:

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

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

这是因为您正在执行 JSONP 请求。

Add this statement:

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

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

This is because you're doing a JSONP request.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文