]> source.dussan.org Git - jquery.git/commitdiff
Core:Ajax: Align nonce & global with master, fix an AMD issue
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Mon, 24 Feb 2020 18:10:03 +0000 (19:10 +0100)
committerGitHub <noreply@github.com>
Mon, 24 Feb 2020 18:10:03 +0000 (19:10 +0100)
This commit aligns the `3.x-stable` branch with `master` in two aspects:
1. It migrates the nonce module to return an object instead of a primitive
variable. This had to be changed on `master` as in ES modules you export
live read-only bindings to variables, meaning you can't increment the nonce
directly. Also, the way it was done so far was working differently in AMD & the
single built file - in the built file one nonce variable was declared, accessed
and incremented. In AMD mode separate instances were create for each module
that depend on the nonce module, creating unintended nonce clashes.
2. Whether the `noGlobal` parameter was set to `true` is now checked using the
typeof operator to align with `master`.

Closes gh-4612
Ref gh-4541
Ref d0ce00cdfa680f1f0c38460bc51ea14079ae8b07

src/ajax.js
src/ajax/jsonp.js
src/ajax/var/nonce.js
src/exports/global.js

index 11eda0da05855d63b97af70345df01a643e49ec4..639a6a3807b2aa43ce9364187c4b07b3ac3785e0 100644 (file)
@@ -610,7 +610,8 @@ jQuery.extend( {
                        // Add or update anti-cache param if needed
                        if ( s.cache === false ) {
                                cacheURL = cacheURL.replace( rantiCache, "$1" );
-                               uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+                               uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
+                                       uncached;
                        }
 
                        // Put hash and anti-cache on the URL that will be requested (gh-1732)
index 28ae0365db93a77f8c31df1adc05316e0e6a7b2a..10186dea7103830c7f5a1421b859c4e4093b7160 100644 (file)
@@ -15,7 +15,7 @@ var oldCallbacks = [],
 jQuery.ajaxSetup( {
        jsonp: "callback",
        jsonpCallback: function() {
-               var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+               var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) );
                this[ callback ] = true;
                return callback;
        }
index 33d0cffb67f821ef5eb2c52813f07c2dcb916f79..c0e4472ac7e928d74202423a936477ac86c02231 100644 (file)
@@ -1,5 +1,5 @@
 define( function() {
        "use strict";
 
-       return Date.now();
+       return { guid: Date.now() };
 } );
index 460b56e4783035fa9c69765a998cb07b1e9c919a..2cc9577d78950ba9b59a2305d0733450338585a6 100644 (file)
@@ -1,6 +1,6 @@
 define( [
        "../core"
-], function( jQuery, noGlobal ) {
+], function( jQuery ) {
 
 "use strict";
 
@@ -27,7 +27,7 @@ jQuery.noConflict = function( deep ) {
 // Expose jQuery and $ identifiers, even in AMD
 // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
 // and CommonJS for browser emulators (#13566)
-if ( !noGlobal ) {
+if ( typeof noGlobal === "undefined" ) {
        window.jQuery = window.$ = jQuery;
 }