git.asbjorn.biz
/
jquery.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1533bf7
)
Fix for http://dev.jquery.com/ticket/6451
author
malsup
<malsup@gmail.com>
Thu, 29 Apr 2010 03:45:34 +0000
(11:45 +0800)
committer
John Resig
<jeresig@gmail.com>
Tue, 15 Jun 2010 03:02:26 +0000
(11:02 +0800)
src/ajax.js
patch
|
blob
|
history
test/unit/ajax.js
patch
|
blob
|
history
diff --git
a/src/ajax.js
b/src/ajax.js
index
7cf280a
..
ffd870c
100644
(file)
--- a/
src/ajax.js
+++ b/
src/ajax.js
@@
-237,17
+237,24
@@
jQuery.extend({
s.dataType = "script";
// Handle JSONP-style loading
s.dataType = "script";
// Handle JSONP-style loading
- window[ jsonp ] = window[ jsonp ] || function( tmp ) {
+ var customJsonp = window[ jsonp ];
+ window[ jsonp ] = function( tmp ) {
data = tmp;
jQuery.ajax.handleSuccess( s, xhr, status, data );
jQuery.ajax.handleComplete( s, xhr, status, data );
data = tmp;
jQuery.ajax.handleSuccess( s, xhr, status, data );
jQuery.ajax.handleComplete( s, xhr, status, data );
- // Garbage collect
- window[ jsonp ] = undefined;
-
- try {
- delete window[ jsonp ];
- } catch( jsonpError ) {}
-
+
+ if ( jQuery.isFunction( customJsonp ) ) {
+ customJsonp( tmp );
+ }
+ else {
+ // Garbage collect
+ window[ jsonp ] = undefined;
+
+ try {
+ delete window[ jsonp ];
+ } catch( jsonpError ) {}
+ }
+
if ( head ) {
head.removeChild( script );
}
if ( head ) {
head.removeChild( script );
}
@@
-436,8
+443,9
@@
jQuery.extend({
}
// Fire the complete handlers
}
// Fire the complete handlers
- jQuery.ajax.handleComplete( s, xhr, status, data );
-
+ if ( !jsonp ) {
+ jQuery.ajax.handleComplete( s, xhr, status, data );
+ }
if ( isTimeout === "timeout" ) {
xhr.abort();
}
if ( isTimeout === "timeout" ) {
xhr.abort();
}
diff --git
a/test/unit/ajax.js
b/test/unit/ajax.js
index
be4b3f0
..
fe44ba3
100644
(file)
--- a/
test/unit/ajax.js
+++ b/
test/unit/ajax.js
@@
-1225,6
+1225,12
@@
test("jQuery.ajax - Etag support", function() {
});
});
});
});
+
+test("jQuery.ajax - active counter", function() {
+ ok( jQuery.ajax.active == 0, "ajax active counter should be zero: " + jQuery.ajax.active );
+});
+
+
}
//}
}
//}