Esta es una pregunta extremadamente antigua, pero aquí están los enfoques que uso personalmente ...
Obtener URL estándar / base
Como muchos ya han dicho, esto funciona para la mayoría de las situaciones.
var url = window.location.origin;
Obtener URL base absoluta
Sin embargo, este enfoque simple se puede utilizar para quitar cualquier número de puerto.
var url = "http://" + location.host.split(":")[0];
Editar: para abordar la inquietud, planteada por Jason Rice , lo siguiente se puede utilizar para insertar automáticamente el tipo de protocolo correcto ...
var url = window.location.protocol + "//" + location.host.split(":")[0];
Establecer URL base
Como beneficio adicional, la URL base se puede redefinir globalmente.
document.head.innerHTML = document.head.innerHTML + "<base href='" + url + "' />";