X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fajax.js;h=eb81e4c484732154bac949a6225c4abbe5303dbb;hb=7ec772374d132149d72418abce4569dedbd4168b;hp=d1a2ec23c3d11c554a21c0931359c1665d8aced5;hpb=c5f4d70e2ba039759ab6d889893d4feb1cca3c52;p=jquery.git diff --git a/src/ajax.js b/src/ajax.js index d1a2ec2..eb81e4c 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -26,7 +26,7 @@ jQuery.fn.extend({ params = null; // Otherwise, build a param string - } else { + } else if( typeof params == 'object' ) { params = jQuery.param( params ); type = "POST"; } @@ -327,16 +327,16 @@ jQuery.extend({ ival = null; } - status = isTimeout == "timeout" && "timeout" || - !jQuery.httpSuccess( xhr ) && "error" || - s.ifModified && jQuery.httpNotModified( xhr, s.url ) && "notmodified" || + status = isTimeout == "timeout" ? "timeout" : + !jQuery.httpSuccess( xhr ) ? "error" : + s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? "notmodified" : "success"; if ( status == "success" ) { // Watch for, and catch, XML document parse errors try { // process the data (runs the xml through httpData regardless of callback) - data = jQuery.httpData( xhr, s.dataType ); + data = jQuery.httpData( xhr, s.dataType, s.dataFilter ); } catch(e) { status = "parsererror"; } @@ -460,13 +460,17 @@ jQuery.extend({ return false; }, - httpData: function( xhr, type ) { + httpData: function( xhr, type, filter ) { var ct = xhr.getResponseHeader("content-type"), xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0, data = xml ? xhr.responseXML : xhr.responseText; if ( xml && data.documentElement.tagName == "parsererror" ) throw "parsererror"; + + // Allow a pre-filtering function to sanitize the response + if( filter ) + data = filter( data, type ); // If the type is "script", eval it in global context if ( type == "script" )