使用 getJSON 时,ajaxStart 在后续请求中失败
我正在尝试将 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我猜 Yashwant 指的是使用随机参数中断自动浏览器缓存。
一个更漂亮的方法是使用 $.ajaxSetup()
这将阻止浏览器缓存所有 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()
This will block browser caching for all your ajax calls.
试试这个,用你的 URL 传递一个额外的参数:
Try this, pass one more extra parameter with your URL:
添加此语句:
Bug Ticket: http://bugs.jquery.com/ticket/8338
这是因为您正在执行 JSONP 请求。
Add this statement:
Bug Ticket: http://bugs.jquery.com/ticket/8338
This is because you're doing a JSONP request.