ajax: script: Threat sameDomain file:// requests as crossDomain
[jquery.git] / src / ajax / script.js
index dfee867..764a806 100644 (file)
@@ -3,13 +3,16 @@
 // Install script dataType
 jQuery.ajaxSetup({
        accepts: {
-               script: "text/javascript, application/javascript"
+               script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
        },
        contents: {
-               script: /javascript/
+               script: /javascript|ecmascript/
        },
        converters: {
-               "text script": jQuery.globalEval
+               "text script": function( text ) {
+                       jQuery.globalEval( text );
+                       return text;
+               }
        }
 });
 
@@ -27,11 +30,14 @@ jQuery.ajaxPrefilter( "script", function( s ) {
 // Bind script tag hack transport
 jQuery.ajaxTransport( "script", function(s) {
 
-       // This transport only deals with cross domain requests
-       if ( s.crossDomain ) {
+       // This transport primarily deals with cross domain requests
+       // but also sameDomain request within file:// due to
+       // http://code.google.com/p/chromium/issues/detail?id=4197 + 47416
+       var local = location.protocol === 'file:';
+       if ( s.crossDomain || local ) {
 
                var script,
-                       head = document.getElementsByTagName( "head" )[ 0 ] || document.documentElement;
+                       head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
 
                return {