X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;ds=inline;f=src%2Fajax.js;h=58c6b9b3c95be575db7896a626d7dc52c94fa2d8;hb=d36382e9a3fa604597d400d1084a2424f0d3eb80;hp=a5a08ecd6d210741013e78416ba88d5dee910676;hpb=06c2f06a2183ef17a8119ef25a383a02572c0b55;p=jquery.git diff --git a/src/ajax.js b/src/ajax.js index a5a08ec..58c6b9b 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -144,14 +144,16 @@ jQuery.extend({ contentType: "application/x-www-form-urlencoded", processData: true, async: true, - data: null + data: null, + username: null, + password: null }, // Last-Modified header cache for next request lastModified: {}, ajax: function( s ) { - var jsonp, jsre = /=(\?|%3F)/g, status, data; + var jsonp, jsre = /=\?(&|$)/g, status, data; // Extend the settings, but re-extend 's' so that it can be // checked again later (in the test suite, specifically) @@ -177,8 +179,8 @@ jQuery.extend({ // Replace the =? sequence both in the query string and the data if ( s.data ) - s.data = (s.data + "").replace(jsre, "=" + jsonp); - s.url = s.url.replace(jsre, "=" + jsonp); + s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1"); + s.url = s.url.replace(jsre, "=" + jsonp + "$1"); // We need to make sure // that a JSONP style response is executed properly @@ -192,6 +194,8 @@ jQuery.extend({ // Garbage collect window[ jsonp ] = undefined; try{ delete window[ jsonp ]; } catch(e){} + if ( head ) + head.removeChild( script ); }; } @@ -224,6 +228,8 @@ jQuery.extend({ var head = document.getElementsByTagName("head")[0]; var script = document.createElement("script"); script.src = s.url; + if (s.scriptCharset) + script.charset = s.scriptCharset; // Handle Script loading if ( !jsonp ) { @@ -244,7 +250,7 @@ jQuery.extend({ head.appendChild(script); // We handle everything using the script element injection - return; + return undefined; } var requestDone = false; @@ -254,7 +260,7 @@ jQuery.extend({ var xml = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); // Open the socket - xml.open(s.type, s.url, s.async); + xml.open(s.type, s.url, s.async, s.username, s.password); // Need an extra try/catch for cross domain requests in Firefox 3 try { @@ -359,9 +365,6 @@ jQuery.extend({ // firefox 1.5 doesn't fire statechange for sync requests if ( !s.async ) onreadystatechange(); - - // return XMLHttpRequest to allow aborting the request etc. - return xml; function success(){ // If a local callback was specified, fire it and pass it the data @@ -386,6 +389,9 @@ jQuery.extend({ if ( s.global && ! --jQuery.active ) jQuery.event.trigger( "ajaxStop" ); } + + // return XMLHttpRequest to allow aborting the request etc. + return xml; }, handleError: function( s, xml, status, e ) {