scratch
/bower_components/jquery/src/ajax/script.js |
@@ -0,0 +1,77 @@ |
define( [ |
"../core", |
"../var/document", |
"../ajax" |
], function( jQuery, document ) { |
|
"use strict"; |
|
// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) |
jQuery.ajaxPrefilter( function( s ) { |
if ( s.crossDomain ) { |
s.contents.script = false; |
} |
} ); |
|
// Install script dataType |
jQuery.ajaxSetup( { |
accepts: { |
script: "text/javascript, application/javascript, " + |
"application/ecmascript, application/x-ecmascript" |
}, |
contents: { |
script: /\b(?:java|ecma)script\b/ |
}, |
converters: { |
"text script": function( text ) { |
jQuery.globalEval( text ); |
return text; |
} |
} |
} ); |
|
// 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"; |
} |
} ); |
|
// Bind script tag hack transport |
jQuery.ajaxTransport( "script", function( s ) { |
|
// This transport only deals with cross domain requests |
if ( s.crossDomain ) { |
var script, callback; |
return { |
send: function( _, complete ) { |
script = jQuery( "<script>" ).prop( { |
charset: s.scriptCharset, |
src: s.url |
} ).on( |
"load error", |
callback = function( evt ) { |
script.remove(); |
callback = null; |
if ( evt ) { |
complete( evt.type === "error" ? 404 : 200, evt.type ); |
} |
} |
); |
|
// Use native DOM manipulation to avoid our domManip AJAX trickery |
document.head.appendChild( script[ 0 ] ); |
}, |
abort: function() { |
if ( callback ) { |
callback(); |
} |
} |
}; |
} |
} ); |
|
} ); |