type = "POST";
}
}
-
+
var self = this;
-
+
// Request the remote document
jQuery.ajax({
url: url,
null :
jQuery.isArray(val) ?
jQuery.map( val, function(val, i){
- return {name: elem.name, value: val};
+ return {name: elem.name, value: val.replace(/\r?\n/g, "\r\n")};
}) :
- {name: elem.name, value: val};
+ {name: elem.name, value: val.replace(/\r?\n/g, "\r\n")};
}).get();
}
});
};
});
-jQuery.extend({
-
- get: function( url, data, callback, type ) {
+jQuery.each( [ "get", "post" ], function( i, method ) {
+ jQuery[ method ] = function( url, data, callback, type ) {
// shift arguments if data argument was omited
if ( jQuery.isFunction( data ) ) {
type = type || callback;
}
return jQuery.ajax({
- type: "GET",
+ type: method,
url: url,
data: data,
success: callback,
dataType: type
});
- },
+ };
+});
+
+jQuery.extend({
getScript: function( url, callback ) {
return jQuery.get(url, null, callback, "script");
return jQuery.get(url, data, callback, "json");
},
- post: function( url, data, callback, type ) {
- // shift arguments if data argument was omited
- if ( jQuery.isFunction( data ) ) {
- type = type || callback;
- callback = data;
- data = {};
- }
-
- return jQuery.ajax({
- type: "POST",
- url: url,
- data: data,
- success: callback,
- dataType: type
- });
- },
-
ajaxSetup: function( settings ) {
jQuery.extend( jQuery.ajaxSettings, settings );
},
"*": "*/*"
},
- autoDataType: {
+ contents: {
xml: /xml/,
html: /html/,
json: /json/
// List of data converters
// 1) key format is "source_type destination_type" (a single space in-between)
// 2) the catchall symbol "*" can be used for source_type
- dataConverters: {
+ converters: {
// Convert anything to text
"* text": window.String,
current,
prev,
checker,
+ conv,
conv1,
conv2,
- oneConv,
convertion,
dataTypes = s.dataTypes,
- dataConverters = s.dataConverters,
+ converters = s.converters,
responses = {
"xml": "XML",
"text": "Text"
if ( i ) {
+ prev = dataTypes[ i - 1 ];
+
if ( prev !== "*" && current !== "*" && prev !== current ) {
- oneConv = conv1 =
- dataConverters[ ( conversion = prev + " " + current ) ] ||
- dataConverters[ "* " + current ];
+ conv = converters[ ( conversion = prev + " " + current ) ] ||
+ converters[ "* " + current ];
- if ( oneConv !== true ) {
-
- if ( ! oneConv && prev !== "text" && current !== "text" ) {
- conv1 = dataConverters[ prev + " text" ] || dataConverters[ "* text" ];
- conv2 = dataConverters[ "text " + current ];
- }
-
- if ( oneConv || conv1 && conv2 ) {
- response = oneConv ? conv1( response ) : conv2( conv1( response ) );
- } else {
- throw "no " + conversion;
+ conv1 = conv2 = 0;
+
+ if ( ! conv && prev !== "text" && current !== "text" ) {
+ conv1 = converters[ prev + " text" ] || converters[ "* text" ];
+ conv2 = converters[ "text " + current ];
+ if ( conv1 === true ) {
+ conv = conv2;
+ } else if ( conv2 === true ) {
+ conv = conv1;
}
}
+
+ if ( ! ( conv || conv1 && conv2 ) ) {
+ throw conversion;
+ }
+
+ if ( conv !== true ) {
+ response = conv ? conv( response ) : conv2( conv1( response ) );
+ }
}
} else if ( s.dataFilter ) {
response = s.dataFilter( response );
dataTypes = s.dataTypes;
}
-
- prev = current;
}
// We have a real success
}
}
- // Attach deferreds
- jXHR.success = jXHR.then = deferred.then;
- jXHR.error = jXHR.fail = deferred.fail;
- jXHR.complete = completeDeferred.then;
+ // Attach deferreds
+ deferred.promise( jXHR );
+ jXHR.success = jXHR.complete;
+ jXHR.error = jXHR.fail;
+ jXHR.complete = completeDeferred.complete;
// Remove hash character (#7531: and string promotion)
s.url = ( "" + s.url ).replace( rhash , "" );
value = jQuery.isFunction(value) ? value() : value;
s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value);
};
-
+
// Set traditional to true for jQuery <= 1.3.2 behavior.
if ( traditional === undefined ) {
traditional = jQuery.ajaxSettings.traditional;
}
-
+
// If an array was passed in, assume that it is an array of form elements.
if ( jQuery.isArray(a) || a.jquery ) {
// Serialize the form elements
jQuery.each( a, function() {
add( this.name, this.value );
});
-
+
} else {
// If traditional, encode the "old" way (the way 1.3.2 or older
// did it), otherwise encode params recursively.
buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
}
});
-
+
} else if ( !traditional && obj != null && typeof obj === "object" ) {
// If we see an array here, it is empty and should be treated as an empty
// object
buildParams( prefix + "[" + k + "]", v, traditional, add );
});
}
-
+
} else {
// Serialize scalar item.
add( prefix, obj );
// (for those transports that can give text or xml responses)
function determineDataType( s , ct , text , xml ) {
- var autoDataType = s.autoDataType,
+ var contents = s.contents,
type,
regexp,
dataTypes = s.dataTypes,
// Auto (xml, json, script or text determined given headers)
if ( transportDataType === "*" ) {
- for ( type in autoDataType ) {
- if ( ( regexp = autoDataType[ type ] ) && regexp.test( ct ) ) {
+ for ( type in contents ) {
+ if ( ( regexp = contents[ type ] ) && regexp.test( ct ) ) {
transportDataType = dataTypes[0] = type;
break;
}
response = text;
- // If it's not really text, defer to dataConverters
+ // If it's not really text, defer to converters
if ( transportDataType !== "text" ) {
dataTypes.unshift( "text" );
}
return new window.XMLHttpRequest();
} catch( xhrError ) {}
}
-
+
try {
return new window.ActiveXObject("Microsoft.XMLHTTP");
} catch( activeError ) {}