Creé una URL corta, digamos https://my.short.link/foo , que apunta a https://my.other.website/bar .
¿Cómo puedo recuperar esta URL con un método javascript dentro del navegador? (Estoy usando angular)
Dependerá de cómo my.short.link maneje el procesamiento de la URL cuando la solicite.
<meta http-equiv="refresh" ...> .Si quiere hacer esto en un navegador, es posible que pueda obtener la información para el servicio Tipo 1 anterior, pero no para otros servicios.
Como dice evolutionxbox , puede intentar fetch y, sorprendentemente (¡para mí!) si el servicio maneja las solicitudes con una respuesta de redirección simple, verá una nueva URL en la respuesta, pero no tendrá el fragmento hash:
fetch("https://tsplay.dev/wEv6gN") .then(r => { if (!r.ok) { throw new Error(`HTTP error ${r.status}`); } for (const [key, value] of r.headers) { console.log(`${key}: ${value}`); } console.log(r.url); }) .catch(console.error); That URL, https://tsplay.dev/wEv6gN , redirects to https://www.typescriptlang.org/play?#code/MYewdgzgLgBAJgQygmBeGB5ARgKwKbBQB0AZgE554BeeAFAN4CwAUDGzBCALZ4BcMARgBMAZgA0LdjAA24AOb96AIgRLeSrEoC+E1u2kBLaPwDaS4EoC6uqSBL8lSm+wRksBqGVcBPfmACu0tLObFAAFgZgchD8AkRCuloAlADcLCxQ3gAOePBICAD6ANZ43mgwJd52MJk51YjIacwsJP5ghAbg8CAA6iBkRbRF-A2FlUkwTHps0niwAG4I0v656KMmRZZNUgD0O0QHLFpAA via a 302 ("Moved Permanently") redirect response. En el código anterior, solo vemos https://www.typescriptlang.org/play? . Pero tal vez eso es suficiente para sus propósitos.
Pero eso no funcionará para los tipos 2 y 3 anteriores. Tendría que poder leer y analizar el HTML, y la Política del mismo origen evitará que el código que se ejecuta en su origen acceda a ese HTML. Podría intentar abrirlo en un iframe (aunque sospecho que en realidad no quiere visitar la página, solo desea obtener su URL), pero se aplica el mismo problema: incluso cuando el iframe va a la ubicación de destino, ganó No podré acceder a eso debido al SOP.
Si te refieres a Node.js o algún otro entorno sin navegador, entonces: