如何在beforeSend (跨域)中使用$.getJSON回调。
更具体地说,$.getJSON是对YQL服务的调用,如
从url=“http://www.yahoo.com”的html中选择*
发布于 2009-11-28 22:40:48
beforeSend的唯一用途是获取原始XHR对象(通常用于在其上设置headers )。你不需要它来启动纺丝器之类的。这里的代码(来自@petersendidit):
jQuery.ajax({
url: url,
dataType: "json",
beforeSend: function(){
$('.loading').show();
}
});最好写成这样:
$('.loading').show();
jQuery.ajax({
url: url,
dataType: "json"
});这意味着,除非您需要jQuery.ajax中的任何高级选项,否则您最初使用jQuery.getJSON的计划是可以的。所以你说你想要显示一个加载的GIF,只需这样做,忘记beforeSend。
jQuery(".someSpinnerImage").show();
jQuery.getJSON("http://www.somedomain.com/someurl", function(data) {
jQuery(".someSpinnerImage").hide();
// Do something with data
}发布于 2009-11-28 22:14:25
$.getJSON只是$.ajax函数的一个捷径函数。
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,例如:
jQuery.ajax({
url: url,
dataType: "json",
beforeSend: function(){
$('.loading').show();
}
});另一种选择是使用$.ajaxSend和$.ajaxComplete函数,但这将使这些函数在每次ajax调用之前和之后调用。
发布于 2009-11-28 17:11:22
我想你想使用$.ajaxStart()和$.ajaxStop()。这将使您能够显示并隐藏ajax/JSON请求上的加载gif。如果有多个ajax请求,它也会做正确的事情。
https://stackoverflow.com/questions/1812585
复制相似问题