diff options
author | jaubourg <j@ubourg.net> | 2012-03-07 16:54:05 +0100 |
---|---|---|
committer | jaubourg <j@ubourg.net> | 2012-03-07 16:54:05 +0100 |
commit | d3fad51cad1f71bd20beba81b51552295721a5a5 (patch) | |
tree | a27eb97bc43bca57ac6aaa1eb02804e9bf506bc4 | |
parent | 484cea1b5651d215a24d3a6827663a4e16a6a253 (diff) | |
download | jquery-d3fad51cad1f71bd20beba81b51552295721a5a5.tar.gz jquery-d3fad51cad1f71bd20beba81b51552295721a5a5.zip |
Fixes #11264 or rather seriously limits the risk of global ajaxSettings screwing with script loading in domManip. Gotta love globals and sneaky dependencies. Unit test added.
-rw-r--r-- | src/manipulation.js | 2 | ||||
-rw-r--r-- | test/data/evalScript.php | 1 | ||||
-rw-r--r-- | test/unit/ajax.js | 20 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/manipulation.js b/src/manipulation.js index 0b42810da..2a3757904 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -351,6 +351,8 @@ jQuery.fn.extend({ jQuery.each( scripts, function( i, elem ) { if ( elem.src ) { jQuery.ajax({ + type: "GET", + global: false, url: elem.src, async: false, dataType: "script" diff --git a/test/data/evalScript.php b/test/data/evalScript.php new file mode 100644 index 000000000..ea9b8c55f --- /dev/null +++ b/test/data/evalScript.php @@ -0,0 +1 @@ +ok( "<?php echo $_SERVER['REQUEST_METHOD'] ?>" === "GET", "request method is <?php echo $_SERVER['REQUEST_METHOD'] ?>" );
\ No newline at end of file diff --git a/test/unit/ajax.js b/test/unit/ajax.js index cca457db1..163ba4f05 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -2336,6 +2336,26 @@ test( "jQuery.ajax - loading binary data shouldn't throw an exception in IE (#11 }); }); +test( "jQuery.domManip - no side effect because of ajaxSetup or global events (#11264)", function() { + expect( 1 ); + + jQuery.ajaxSetup({ + type: "POST" + }); + + jQuery( document ).bind( "ajaxStart ajaxStop", function() { + ok( false, "Global event triggered" ); + }); + + jQuery( "#qunit-fixture" ).append( "<script src='data/evalScript.php'></script>" ); + + jQuery( document ).unbind( "ajaxStart ajaxStop" ); + + jQuery.ajaxSetup({ + type: "GET" + }); +}); + test("jQuery.ajax - active counter", function() { ok( jQuery.active == 0, "ajax active counter should be zero: " + jQuery.active ); }); |