X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fajax.js;h=dbea8d5d4883365540119f80aaad19ea7846cd2c;hb=80af46e8ffe8292e0af0537db6c7e89019e5edba;hp=744476f1a399f5d77bac0290861d58f21bc1b228;hpb=d515068ee807efef29b6c8406171be4725d7154f;p=jquery.git diff --git a/src/ajax.js b/src/ajax.js index 744476f..dbea8d5 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, @@ -520,21 +520,29 @@ 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 ) ); + + if ( ! s.crossDomain ) { + 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" ) { s.data = jQuery.param( s.data , s.traditional ); } + // Get transport + transport = jQuery.ajax.prefilter( s , options ).transport( s ); + // Watch for a new set of requests if ( s.global && jQuery.active++ === 0 ) { jQuery.event.trigger( "ajaxStart" ); } - // Get transport - transport = jQuery.ajax.prefilter( s ).transport( s ); - // If no transport, we auto-abort if ( ! transport ) {