I just downloaded the newest version from http://jquery.com and tried it as
is, no zipping or packing, same result, here is the $.post function:

    post: function( url, data, callback, type ) {
        if ( jQuery.isFunction( data ) ) {
            callback = data;
            data = {};
        }

        return jQuery.ajax({
            type: "POST",
            url: url,
            data: data,
            success: callback,
            dataType: type
        });
    }

So it is depends on the ajax function:

    ajax: function( s ) {
        // Extend the settings, but re-extend 's' so that it can be
        // checked again later (in the test suite, specifically)
        s = jQuery.extend(true, s, jQuery.extend(true, {},
jQuery.ajaxSettings, s));

        var jsonp, jsre = /=\?(&|$)/g, status, data,
            type = s.type.toUpperCase();

        // convert data if not already a string
        if ( s.data && s.processData && typeof s.data != "string" )
            s.data = jQuery.param(s.data);

        // Handle JSONP Parameter Callbacks
        if ( s.dataType == "jsonp" ) {
            if ( type == "GET" ) {
                if ( !s.url.match(jsre) )
                    s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp ||
"callback") + "=?";
            } else if ( !s.data || !s.data.match(jsre) )
                s.data = (s.data ? s.data + "&" : "") + (s.jsonp ||
"callback") + "=?";
            s.dataType = "json";
        }

        // Build temporary JSONP function
        if ( s.dataType == "json" && (s.data && s.data.match(jsre) ||
s.url.match(jsre)) ) {
            jsonp = "jsonp" + jsc++;

            // Replace the =? sequence both in the query string and the data
            if ( s.data )
                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
            s.dataType = "script";

            // Handle JSONP-style loading
            window[ jsonp ] = function(tmp){
                data = tmp;
                success();
                complete();
                // Garbage collect
                window[ jsonp ] = undefined;
                try{ delete window[ jsonp ]; } catch(e){}
                if ( head )
                    head.removeChild( script );
            };
        }

        if ( s.dataType == "script" && s.cache == null )
            s.cache = false;

        if ( s.cache === false && type == "GET" ) {
            var ts = now();
            // try replacing _= if it is there
            var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
            // if nothing was replaced, add timestamp to the end
            s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?")
+ "_=" + ts : "");
        }

        // If data is available, append data to url for get requests
        if ( s.data && type == "GET" ) {
            s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;

            // IE likes to send both get and post data, prevent this
            s.data = null;
        }

        // Watch for a new set of requests
        if ( s.global && ! jQuery.active++ )
            jQuery.event.trigger( "ajaxStart" );

        // Matches an absolute URL, and saves the domain
        var remote = /^(?:\w+:)?\/\/([^\/?#]+)/;

        // If we're requesting a remote document
        // and trying to load JSON or Script with a GET
        if ( s.dataType == "script" && type == "GET"
                && remote.test(s.url) && remote.exec(s.url)[1] !=
location.host ){
            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 ) {
                var done = false;

                // Attach handlers for all browsers
                script.onload = script.onreadystatechange = function(){
                    if ( !done && (!this.readyState ||
                            this.readyState == "loaded" || this.readyState
== "complete") ) {
                        done = true;
                        success();
                        complete();
                        head.removeChild( script );
                    }
                };
            }

            head.appendChild(script);

            // We handle everything using the script element injection
            return undefined;
        }

        var requestDone = false;

        // Create the request object; Microsoft failed to properly
        // implement the XMLHttpRequest in IE7, so we use the ActiveXObject
when it is available
        var xhr = window.ActiveXObject ? new
ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();

        // Open the socket
        // Passing null username, generates a login popup on Opera (#2865)
        if( s.username )
            xhr.open(type, s.url, s.async, s.username, s.password);
        else
            xhr.open(type, s.url, s.async);

        // Need an extra try/catch for cross domain requests in Firefox 3
        try {
            // Set the correct header, if data is being sent
            if ( s.data )
                xhr.setRequestHeader("Content-Type", s.contentType);

            // Set the If-Modified-Since header, if ifModified mode.
            if ( s.ifModified )
                xhr.setRequestHeader("If-Modified-Since",
                    jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00
GMT" );

            // Set header so the called script knows that it's an
XMLHttpRequest
            xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");

            // Set the Accepts header for the server, depending on the
dataType
            xhr.setRequestHeader("Accept", s.dataType && s.accepts[
s.dataType ] ?
                s.accepts[ s.dataType ] + ", */*" :
                s.accepts._default );
        } catch(e){}

        // Allow custom headers/mimetypes
        if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
            // cleanup active request counter
            s.global && jQuery.active--;
            // close opended socket
            xhr.abort();
            return false;
        }

        if ( s.global )
            jQuery.event.trigger("ajaxSend", [xhr, s]);

        // Wait for a response to come back
        var onreadystatechange = function(isTimeout){
            // The transfer is complete and the data is available, or the
request timed out
            if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout ==
"timeout") ) {
                requestDone = true;

                // clear poll interval
                if (ival) {
                    clearInterval(ival);
                    ival = null;
                }

                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,
s.dataFilter );
                    } catch(e) {
                        status = "parsererror";
                    }
                }

                // Make sure that the request was successful or notmodified
                if ( status == "success" ) {
                    // Cache Last-Modified header, if ifModified mode.
                    var modRes;
                    try {
                        modRes = xhr.getResponseHeader("Last-Modified");
                    } catch(e) {} // swallow exception thrown by FF if
header is not available

                    if ( s.ifModified && modRes )
                        jQuery.lastModified[s.url] = modRes;

                    // JSONP handles its own success callback
                    if ( !jsonp )
                        success();
                } else
                    jQuery.handleError(s, xhr, status);

                // Fire the complete handlers
                complete();

                // Stop memory leaks
                if ( s.async )
                    xhr = null;
            }
        };

        if ( s.async ) {
            // don't attach the handler to the request, just poll it instead
            var ival = setInterval(onreadystatechange, 13);

            // Timeout checker
            if ( s.timeout > 0 )
                setTimeout(function(){
                    // Check to see if the request is still happening
                    if ( xhr ) {
                        // Cancel the request
                        xhr.abort();

                        if( !requestDone )
                            onreadystatechange( "timeout" );
                    }
                }, s.timeout);
        }

        // Send the data
        try {
            xhr.send(s.data);
        } catch(e) {
            jQuery.handleError(s, xhr, null, e);
        }

        // firefox 1.5 doesn't fire statechange for sync requests
        if ( !s.async )
            onreadystatechange();

        function success(){
            // If a local callback was specified, fire it and pass it the
data
            if ( s.success )
                s.success( data, status );

            // Fire the global callback
            if ( s.global )
                jQuery.event.trigger( "ajaxSuccess", [xhr, s] );
        }

        function complete(){
            // Process result
            if ( s.complete )
                s.complete(xhr, status);

            // The request was completed
            if ( s.global )
                jQuery.event.trigger( "ajaxComplete", [xhr, s] );

            // Handle the global AJAX counter
            if ( s.global && ! --jQuery.active )
                jQuery.event.trigger( "ajaxStop" );
        }

        // return XMLHttpRequest to allow aborting the request etc.
        return xhr;
    },

The above works flawlessly with Apache + PHP.

/Henrik

------=_Part_38217_10429206.1223201211828
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

<div dir="ltr">I just downloaded the newest version from <a 
href="http://jquery.com";>http://jquery.com</a> and tried it as is, no zipping 
or packing, same result, here is the $.post function:<br><br>&nbsp;&nbsp;&nbsp; 
post: function( url, data, callback, type ) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( jQuery.isFunction( data ) ) 
{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; callback = 
data;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; data = 
{};<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; return jQuery.ajax({<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; type: 
&quot;POST&quot;,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
url: url,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; data: 
data,<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; success: 
callback,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; dataType: 
type<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; });<br>&nbsp;&nbsp;&nbsp; 
}<br><br>So it is depends on the ajax function:<br><br>&nbsp;&nbsp;&nbsp; ajax: 
function( s ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Extend the 
settings, but re-extend &#39;s&#39; so that it can be<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // checked again later (in the test 
suite, specifically)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s = 
jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, 
s));<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var jsonp, jsre = 
/=\?(&amp;|$)/g, status, data,<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; type = s.type.toUpperCase();<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // convert data if not already a 
string<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.data &amp;&amp; 
s.processData &amp;&amp; typeof s.data != &quot;string&quot; 
)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.data = 
jQuery.param(s.data);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Handle 
JSONP Parameter Callbacks<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.dataType == &quot;jsonp&quot; ) 
{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( type == 
&quot;GET&quot; ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if ( !s.url.match(jsre) )<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
s.url += (s.url.match(/\?/) ? &quot;&amp;&quot; : &quot;?&quot;) + (s.jsonp || 
&quot;callback&quot;) + &quot;=?&quot;;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else if ( !s.data || 
!s.data.match(jsre) )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.data = (s.data ? s.data + 
&quot;&amp;&quot; : &quot;&quot;) + (s.jsonp || &quot;callback&quot;) + 
&quot;=?&quot;;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
s.dataType = &quot;json&quot;;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Build temporary JSONP function<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if ( s.dataType == &quot;json&quot; &amp;&amp; (s.data 
&amp;&amp; s.data.match(jsre) || s.url.match(jsre)) ) {<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; jsonp = &quot;jsonp&quot; + jsc++;<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Replace the =? 
sequence both in the query string and the data<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.data )<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.data = (s.data + 
&quot;&quot;).replace(jsre, &quot;=&quot; + jsonp + 
&quot;$1&quot;);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
s.url = s.url.replace(jsre, &quot;=&quot; + jsonp + &quot;$1&quot;);<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // We need to make 
sure<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // that a 
JSONP style response is executed properly<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.dataType = 
&quot;script&quot;;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Handle JSONP-style loading<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; window[ jsonp ] = function(tmp){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
data = tmp;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; success();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; complete();<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Garbage 
collect<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; window[ jsonp ] = undefined;<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try{ delete window[ 
jsonp ]; } catch(e){}<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if 
( head )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; head.removeChild( script 
);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
};<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if ( s.dataType == &quot;script&quot; &amp;&amp; s.cache == 
null )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.cache = 
false;<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.cache === false &amp;&amp; 
type == &quot;GET&quot; ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; var ts = now();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // try replacing _= if it is there<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var ret = 
s.url.replace(/(\?|&amp;)_=.*?(&amp;|$)/, &quot;$1_=&quot; + ts + 
&quot;$2&quot;);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // if nothing was 
replaced, add timestamp to the end<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? 
&quot;&amp;&quot; : &quot;?&quot;) + &quot;_=&quot; + ts : 
&quot;&quot;);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // If data is available, append data 
to url for get requests<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.data 
&amp;&amp; type == &quot;GET&quot; ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; s.url += (s.url.match(/\?/) ? &quot;&amp;&quot; : 
&quot;?&quot;) + s.data;<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // IE likes to 
send both get and post data, prevent this<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.data = null;<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Watch for 
a new set of requests<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.global 
&amp;&amp; ! jQuery.active++ )<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; jQuery.event.trigger( 
&quot;ajaxStart&quot; );<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // 
Matches an absolute URL, and saves the domain<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; var remote = 
/^(?:\w+:)?\/\/([^\/?#]+)/;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // If 
we&#39;re requesting a remote document<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // and trying to load JSON or Script with 
a GET<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.dataType == 
&quot;script&quot; &amp;&amp; type == &quot;GET&quot;<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &amp;&amp; 
remote.test(s.url) &amp;&amp; remote.exec(s.url)[1] != location.host ){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var head = 
document.getElementsByTagName(&quot;head&quot;)[0];<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var script = 
document.createElement(&quot;script&quot;);<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; script.src = s.url;<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (s.scriptCharset)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
script.charset = s.scriptCharset;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Handle Script loading<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( !jsonp ) {<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var done = 
false;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Attach handlers for all browsers<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
script.onload = script.onreadystatechange = function(){<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if 
( !done &amp;&amp; (!this.readyState ||<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.readyState == &quot;loaded&quot; || 
this.readyState == &quot;complete&quot;) ) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; done = true;<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; success();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
complete();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; head.removeChild( 
script );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
};<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
head.appendChild(script);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // We handle everything using the script element 
injection<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return 
undefined;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; var requestDone = false;<br><br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Create the request object; Microsoft failed to 
properly<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // implement the XMLHttpRequest in IE7, 
so we use the ActiveXObject when it is available<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; var xhr = window.ActiveXObject ? new 
ActiveXObject(&quot;Microsoft.XMLHTTP&quot;) : new XMLHttpRequest();<br><br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Open the socket<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Passing null username, generates a login popup on Opera 
(#2865)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( s.username 
)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xhr.open(type, 
s.url, s.async, s.username, s.password);<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; else<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xhr.open(type, s.url, 
s.async);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Need an extra 
try/catch for cross domain requests in Firefox 3<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Set the correct header, if data is being 
sent<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.data 
)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
xhr.setRequestHeader(&quot;Content-Type&quot;, 
s.contentType);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
// Set the If-Modified-Since header, if ifModified mode.<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.ifModified )<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
xhr.setRequestHeader(&quot;If-Modified-Since&quot;,<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; jQuery.lastModified[s.url] || &quot;Thu, 01 Jan 1970 
00:00:00 GMT&quot; );<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Set header so the called script knows that it&#39;s an 
XMLHttpRequest<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
xhr.setRequestHeader(&quot;X-Requested-With&quot;, 
&quot;XMLHttpRequest&quot;);<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Set the Accepts 
header for the server, depending on the dataType<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xhr.setRequestHeader(&quot;Accept&quot;, 
s.dataType &amp;&amp; s.accepts[ s.dataType ] ?<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.accepts[ s.dataType 
] + &quot;, */*&quot; :<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
s.accepts._default );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } 
catch(e){}<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Allow custom 
headers/mimetypes<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.beforeSend 
&amp;&amp; s.beforeSend(xhr, s) === false ) {<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // cleanup active request counter<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.global &amp;&amp; 
jQuery.active--;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // 
close opended socket<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; xhr.abort();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; return false;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
}<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.global 
)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
jQuery.event.trigger(&quot;ajaxSend&quot;, [xhr, s]);<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Wait for a response to come 
back<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var onreadystatechange = 
function(isTimeout){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // The transfer is complete and the data is available, or 
the request timed out<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if ( !requestDone &amp;&amp; xhr &amp;&amp; (xhr.readyState 
== 4 || isTimeout == &quot;timeout&quot;) ) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
requestDone = true;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // clear poll 
interval<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if (ival) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
clearInterval(ival);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ival = 
null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; }<br><br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
status = isTimeout == &quot;timeout&quot; &amp;&amp; &quot;timeout&quot; 
||<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; !jQuery.httpSuccess( xhr ) &amp;&amp; 
&quot;error&quot; ||<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.ifModified 
&amp;&amp; jQuery.httpNotModified( xhr, s.url ) &amp;&amp; 
&quot;notmodified&quot; ||<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &quot;success&quot;;<br><br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( status == 
&quot;success&quot; ) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Watch for, and 
catch, XML document parse errors<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try 
{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // process the data 
(runs the xml through httpData regardless of callback)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; data = jQuery.httpData( xhr, s.dataType, 
s.dataFilter );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } catch(e) {<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; status = &quot;parsererror&quot;;<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
}<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; }<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
// Make sure that the request was successful or 
notmodified<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if ( status == &quot;success&quot; ) {<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // 
Cache Last-Modified header, if ifModified mode.<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var 
modRes;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
modRes = 
xhr.getResponseHeader(&quot;Last-Modified&quot;);<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } 
catch(e) {} // swallow exception thrown by FF if header is not 
available<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.ifModified &amp;&amp; modRes )<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; jQuery.lastModified[s.url] = 
modRes;<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // JSONP handles its own success 
callback<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( !jsonp )<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; success();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; jQuery.handleError(s, xhr, 
status);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Fire the complete handlers<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
complete();<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // Stop memory leaks<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.async )<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; xhr = null;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
};<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.async ) 
{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // don&#39;t 
attach the handler to the request, just poll it instead<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var ival = 
setInterval(onreadystatechange, 13);<br>
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Timeout 
checker<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( 
s.timeout &gt; 0 )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; setTimeout(function(){<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // 
Check to see if the request is still happening<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if 
( xhr ) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Cancel the 
request<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
xhr.abort();<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( !requestDone 
)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
onreadystatechange( &quot;timeout&quot; );<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
}<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }, 
s.timeout);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
}<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Send the 
data<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xhr.send(s.data);<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; } catch(e) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; jQuery.handleError(s, xhr, null, e);<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; }<br><br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // firefox 1.5 doesn&#39;t fire 
statechange for sync requests<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( 
!s.async )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
onreadystatechange();<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; function 
success(){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // If a 
local callback was specified, fire it and pass it the data<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.success 
)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; s.success( data, status );<br><br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Fire the global 
callback<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( 
s.global )<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; jQuery.event.trigger( &quot;ajaxSuccess&quot;, [xhr, s] 
);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; function complete(){<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Process result<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( s.complete )<br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.complete(xhr, 
status);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // The 
request was completed<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if ( s.global )<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
jQuery.event.trigger( &quot;ajaxComplete&quot;, [xhr, s] 
);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Handle 
the global AJAX counter<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if ( s.global &amp;&amp; ! --jQuery.active 
)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; jQuery.event.trigger( &quot;ajaxStop&quot; );<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // return XMLHttpRequest to allow aborting the request 
etc.<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return xhr;<br>&nbsp;&nbsp;&nbsp; 
},<br><br>The above works flawlessly with Apache + PHP.<br><br>/Henrik<br></div>

------=_Part_38217_10429206.1223201211828--
-- 
UNSUBSCRIBE: mailto:[EMAIL PROTECTED]

Reply via email to