Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
@@ -14,71 +14,45 @@ jQuery.ajaxSetup({ | ||
} | ||
}); | ||
|
||
// Handle cache's special case and global | ||
// Handle cache's special case and crossDomain | ||
jQuery.ajaxPrefilter( "script", function( s ) { | ||
if ( s.cache === undefined ) { | ||
s.cache = false; | ||
} | ||
if ( s.crossDomain ) { | ||
s.type = "GET"; | ||
s.global = false; | ||
This comment has been minimized.
This comment has been minimized.
dmethvin
Member
|
||
} | ||
}); | ||
|
||
// Bind script tag hack transport | ||
jQuery.ajaxTransport( "script", function(s) { | ||
|
||
// This transport only deals with cross domain requests | ||
if ( s.crossDomain ) { | ||
|
||
var script, | ||
head = document.head || jQuery("head")[0] || document.documentElement; | ||
|
||
var callback; | ||
return { | ||
|
||
send: function( _, callback ) { | ||
|
||
script = document.createElement("script"); | ||
|
||
script.async = true; | ||
|
||
if ( s.scriptCharset ) { | ||
script.charset = s.scriptCharset; | ||
} | ||
|
||
script.src = s.url; | ||
|
||
// Attach handlers for all browsers | ||
script.onload = script.onreadystatechange = function( _, isAbort ) { | ||
|
||
if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) { | ||
|
||
// Handle memory leak in IE | ||
script.onload = script.onreadystatechange = null; | ||
|
||
// Remove the script | ||
if ( script.parentNode ) { | ||
script.parentNode.removeChild( script ); | ||
send: function( _, complete ) { | ||
callback = function( type ) { | ||
return function() { | ||
callback = script.onload = script.onerror = null; | ||
jQuery( script ).remove(); | ||
if ( type ) { | ||
complete( type === "success" ? 200 : 404, type ); | ||
} | ||
|
||
// Dereference the script | ||
script = null; | ||
|
||
// Callback if not abort | ||
if ( !isAbort ) { | ||
callback( 200, "success" ); | ||
} | ||
} | ||
}; | ||
}; | ||
|
||
// Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending | ||
// Use native DOM manipulation to avoid our domManip AJAX trickery | ||
head.insertBefore( script, head.firstChild ); | ||
var script = jQuery.extend( document.createElement("script"), { | ||
async: true, | ||
charset: s.scriptCharset, | ||
src: s.url, | ||
onload: callback("success"), | ||
onerror: callback("error") | ||
}); | ||
callback = callback(); | ||
document.head.appendChild( script ); | ||
}, | ||
|
||
abort: function() { | ||
if ( script ) { | ||
script.onload( undefined, true ); | ||
if ( callback ) { | ||
callback(); | ||
} | ||
} | ||
}; | ||
@jaubourg @dmethvin This was first added in ab3ba4a from what I can see. It was removed here. There's no information in either place why the change was made. Can you elaborate?
(I'm working w/ an old version of jQuery that still sets
global=false
on cross domain script requests)