Renamed jQuery.xhr.bindTransport as jQuery.xhr.transport. Generalized the implementat...
[jquery.git] / src / ajax.js
index ceeef5e..258694c 100644 (file)
@@ -206,15 +206,16 @@ jQuery.extend({
                // 2) These are called:
                //    * BEFORE asking for a transport
                //    * AFTER param serialization (s.data is a string if s.processData is true)
-               // 3) They MUST be order agnostic
-               prefilters: [],
+               // 3) key is the dataType
+               // 4) the catchall symbol "*" can be used
+               // 5) execution will start with transport dataType and THEN continue down to "*" if needed
+               prefilters: {},
                
                // Transports bindings
                // 1) key is the dataType
                // 2) the catchall symbol "*" can be used
                // 3) selection will start with transport dataType and THEN go to "*" if needed
-               transports: {
-               },
+               transports: {},
                
                // Checkers
                // 1) key is dataType
@@ -343,7 +344,9 @@ function buildParams( prefix, obj, traditional, add ) {
                });
                        
        } else if ( !traditional && obj != null && typeof obj === "object" ) {
-               if ( jQuery.isEmptyObject( obj ) ) {
+               // If we see an array here, it is empty and should be treated as an empty
+               // object
+               if ( jQuery.isArray( obj ) || jQuery.isEmptyObject( obj ) ) {
                        add( prefix, "" );
 
                // Serialize object item.
@@ -401,4 +404,4 @@ jQuery.support.ajax = !!testXHR;
 // Does this browser support crossDomain XHR requests
 jQuery.support.cors = testXHR && "withCredentials" in testXHR;
 
-})(jQuery);
\ No newline at end of file
+})( jQuery );