X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fajax.js;h=207ef13aa37d48b796b4b17e2c882cbdb0e17a17;hb=afefb4f3d28f47c0a93cc9dfddfcbadb595a8efb;hp=7988ab1ef0f861a253261bd52dfe661f69bb9b29;hpb=1ca82ccd9489f11d3a8fbdd8a32b4c164ffaf483;p=jquery.git diff --git a/src/ajax.js b/src/ajax.js index 7988ab1..207ef13 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -10,7 +10,7 @@ var r20 = /%20/g, rscript = /)<[^<]*)*<\/script>/gi, rselectTextarea = /^(?:select|textarea)/i, rts = /([?&])_=[^&]*/, - rurl = /^(\w+:)?\/\/([^\/?#]+)/, + rurl = /^(\w+:)?\/\/([^\/?#:]+)(?::(\d+))?/, // Slice function sliceFunc = Array.prototype.slice, @@ -464,6 +464,11 @@ jQuery.extend({ } else { // if not success, mark it as an error error = error || statusText; + + // Set responseText if needed + if ( response ) { + jXHR.responseText = response; + } } // Set data for the fake xhr object @@ -515,7 +520,12 @@ jQuery.extend({ // Determine if a cross-domain request is in order var parts = rurl.exec( s.url.toLowerCase() ), loc = location; - s.crossDomain = !!( parts && ( parts[ 1 ] && parts[ 1 ] != loc.protocol || parts[ 2 ] != loc.host ) ); + s.crossDomain = !!( + parts && + ( parts[ 1 ] && parts[ 1 ] != loc.protocol || + parts[ 2 ] != loc.hostname || + ( parts[ 3 ] || 80 ) != ( loc.port || 80 ) ) + ); // Convert data if not already a string if ( s.data && s.processData && typeof s.data != "string" ) { @@ -559,7 +569,7 @@ jQuery.extend({ } // Set the correct header, if data is being sent - if ( ( s.data && s.hasContent ) || options.contentType ) { + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { requestHeaders[ "content-type" ] = s.contentType; }