Revised how context is determined and removed unnecessary "parameter as variable...
[jquery.git] / src / ajax.js
index 871481d..b903358 100644 (file)
@@ -182,9 +182,6 @@ jQuery.extend({
                headers: {},
                crossDomain: null,
                */
-               xhr: function() {
-                       return new window.XMLHttpRequest();
-               },
 
                accepts: {
                        xml: "application/xml, text/xml",
@@ -236,8 +233,7 @@ jQuery.extend({
        },
 
        // Main method
-       // (s is used internally)
-       ajax: function( url , options , s ) {
+       ajax: function( url , options ) {
 
                // Handle varargs
                if ( arguments.length === 1 ) {
@@ -251,19 +247,14 @@ jQuery.extend({
                // Get the url if provided separately
                options.url = url || options.url;
 
-               // Create the final options object
-               s = jQuery.extend( true , {} , jQuery.ajaxSettings , options );
-
-               // We force the original context
-               // (plain objects used as context get extended)
-               s.context = options.context;
-
-               var // jQuery lists
+               var // Create the final options object
+                       s = jQuery.extend( true , {} , jQuery.ajaxSettings , options ),
+                       // jQuery lists
                        jQuery_lastModified = jQuery.lastModified,
                        jQuery_etag = jQuery.etag,
                        // Callbacks contexts
-                       callbackContext = s.context || s,
-                       globalEventContext = s.context ? jQuery( s.context ) : jQuery.event,
+                       callbackContext = options.context || s.context || s,
+                       globalEventContext = callbackContext === s ? jQuery.event : jQuery( callbackContext ),
                        // Deferreds
                        deferred = jQuery.Deferred(),
                        completeDeferred = jQuery._Deferred(),
@@ -340,6 +331,10 @@ jQuery.extend({
                                }
                        };
 
+               // We force the original context
+               // (plain objects used as context get extended)
+               s.context = options.context;
+
                // Callback for when everything is done
                // It is defined here because jslint complains if it is declared
                // at the end of the function (which would be more logical and readable)
@@ -977,33 +972,4 @@ function determineDataType( s , ct , text , xml ) {
        return response;
 }
 
-/*
- * Create the request object; Microsoft failed to properly
- * implement the XMLHttpRequest in IE7 (can't request local files),
- * so we use the ActiveXObject when it is available
- * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
- * we need a fallback.
- */
-if ( window.ActiveXObject ) {
-       jQuery.ajaxSettings.xhr = function() {
-       if ( window.location.protocol !== "file:" ) {
-               try {
-                       return new window.XMLHttpRequest();
-               } catch( xhrError ) {}
-       }
-
-       try {
-               return new window.ActiveXObject("Microsoft.XMLHTTP");
-       } catch( activeError ) {}
-       };
-}
-
-var testXHR = jQuery.ajaxSettings.xhr();
-
-// Does this browser support XHR requests?
-jQuery.support.ajax = !!testXHR;
-
-// Does this browser support crossDomain XHR requests
-jQuery.support.cors = testXHR && "withCredentials" in testXHR;
-
 })( jQuery );