JSFiddle - React, Tailwind, and code Playground
JavaScript
var parts, crossDomain1, crossDomain2, rurl, ajaxLocParts;
var url = 'http://foo.com';
var ajaxLocation = 'http://foo.com:80';
//jquery 1.7.2
rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/;
ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
parts = rurl.exec( url.toLowerCase() );
crossDomain1 = !!( parts &&
( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
);
console.log(crossDomain1);
//jquery 1.8.2
rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/;
ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
parts = rurl.exec( url.toLowerCase() ) || false;
crossDomain2 = parts && ( parts.join(":") + ( parts[ 3 ] ? "" : parts[ 1 ] === "http:" ? 80 : 443 ) ) !==
( ajaxLocParts.join(":") + ( ajaxLocParts[ 3 ] ? "" : ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) );
console.log(crossDomain2);
if(crossDomain1!=crossDomain2)
{
alert('wrong!')
}