aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOleg Gaidarenko <markelog@gmail.com>2015-07-10 20:58:43 +0300
committerOleg Gaidarenko <markelog@gmail.com>2015-07-13 04:09:31 +0300
commit3d850edb13b8dfea2c09327f4561ca05cb7dc3bd (patch)
tree1391ed788eea451fba83b2a36f9307d6065e3aba /src
parent1682d36be2453007583c3c18d5ebbfa743322ff0 (diff)
downloadjquery-3d850edb13b8dfea2c09327f4561ca05cb7dc3bd.tar.gz
jquery-3d850edb13b8dfea2c09327f4561ca05cb7dc3bd.zip
Ajax: Remove jsonp callbacks through "jQuery#removeProp" method
Fixes gh-2323 Closes gh-2464 Ref a2ae215d999637e8d9d0906abcbf6b1ca35c8e6e
Diffstat (limited to 'src')
-rw-r--r--src/ajax/jsonp.js10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/ajax/jsonp.js b/src/ajax/jsonp.js
index a04898f67..f469344e0 100644
--- a/src/ajax/jsonp.js
+++ b/src/ajax/jsonp.js
@@ -64,8 +64,14 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
// Clean-up function (fires after converters)
jqXHR.always(function() {
- // Restore preexisting value
- window[ callbackName ] = overwritten;
+ // If previous value didn't exist - remove it
+ if ( overwritten === undefined ) {
+ jQuery( window ).removeProp( callbackName );
+
+ // Otherwise restore preexisting value
+ } else {
+ window[ callbackName ] = overwritten;
+ }
// Save back as free
if ( s[ callbackName ] ) {