Skip to content

Instantly share code, notes, and snippets.

@cmpscabral
Forked from jpsilvashy/hostReachable.js
Last active April 14, 2021 06:47
Show Gist options
  • Save cmpscabral/7626ae29475283d32771 to your computer and use it in GitHub Desktop.
Save cmpscabral/7626ae29475283d32771 to your computer and use it in GitHub Desktop.
function hostReachable() {
// Handle IE and more capable browsers
var xhr = new ( window.ActiveXObject || XMLHttpRequest )( "Microsoft.XMLHTTP" );
var status;
var server = window.location.hostname;
if (window.location.port != '') {
server += ':'+window.location.port;
}
// Open new request as a HEAD to the root hostname with a random param to bust the cache
xhr.open( "HEAD", "//" + server + "/?rand=" + Math.floor((1 + Math.random()) * 0x10000), false );
// Issue request and handle response
try {
xhr.send();
return ( xhr.status >= 200 && xhr.status < 300 || xhr.status === 304 );
} catch (error) {
return false;
}
}
@Hettomei
Copy link

Because I m not good at javascript, I'd like to ask you why you prefer :

 if (window.location.port != '') {
  server += ':'+window.location.port;
}

instead of:

window.location.host

is there any fail with window.location.host ?

@michaellopez
Copy link

@Hettomei The XHR request needs to be sent to the server. If the server is listening on port 8080 for example, a request to a hostname without port 8080 will not give you a response.

@ali-master
Copy link

it's Great, Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment