首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >beforeSend in $.getJSON

beforeSend in $.getJSON
EN

Stack Overflow用户
提问于 2009-11-28 14:01:58
回答 5查看 33K关注 0票数 12

如何在beforeSend (跨域)中使用$.getJSON回调。

更具体地说,$.getJSON是对YQL服务的调用,如

从url=“http://www.yahoo.com”的html中选择*

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-11-28 22:40:48

beforeSend的唯一用途是获取原始XHR对象(通常用于在其上设置headers )。你不需要它来启动纺丝器之类的。这里的代码(来自@petersendidit):

代码语言:javascript
复制
jQuery.ajax({
    url: url,
    dataType: "json",
    beforeSend: function(){
        $('.loading').show();
    }
});

最好写成这样:

代码语言:javascript
复制
$('.loading').show();
jQuery.ajax({
    url: url,
    dataType: "json"
});

这意味着,除非您需要jQuery.ajax中的任何高级选项,否则您最初使用jQuery.getJSON的计划是可以的。所以你说你想要显示一个加载的GIF,只需这样做,忘记beforeSend

代码语言:javascript
复制
jQuery(".someSpinnerImage").show();
jQuery.getJSON("http://www.somedomain.com/someurl", function(data) {
    jQuery(".someSpinnerImage").hide();
    // Do something with data
}
票数 37
EN

Stack Overflow用户

发布于 2009-11-28 22:14:25

$.getJSON只是$.ajax函数的一个捷径函数。

代码语言:javascript
复制
get: function( url, data, callback, type ) {
   // shift arguments if data argument was ommited
   if ( jQuery.isFunction( data ) ) {
      callback = data;
      data = null;
   }
   return jQuery.ajax({
       type: "GET",
       url: url,
       data: data,
       success: callback,
       dataType: type
   });
}, 
getJSON: function( url, data, callback ) {
    return jQuery.get(url, data, callback, "json");
},

因此,如果您需要做更多的事情,那么基本的getJSON调用只需使用$.ajax,例如:

代码语言:javascript
复制
jQuery.ajax({
    url: url,
    dataType: "json",
    beforeSend: function(){
        $('.loading').show();
    }
});

另一种选择是使用$.ajaxSend$.ajaxComplete函数,但这将使这些函数在每次ajax调用之前和之后调用。

票数 6
EN

Stack Overflow用户

发布于 2009-11-28 17:11:22

我想你想使用$.ajaxStart()$.ajaxStop()。这将使您能够显示并隐藏ajax/JSON请求上的加载gif。如果有多个ajax请求,它也会做正确的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1812585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档