es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Angular 7 – ngOnInit – window.location.href no funciona – De HTTPS a HTTP

Tengo el siguiente código en el evento ngOnInit.

ngOnInit()
{
let Url = window.location.href.trim().toLocaleLowerCase();
if (Url.startsWith("https://"))
{
console.log('HTTPS');
let NewUrl = Url.replace("https://", "http://");
this.document.location.href = NewUrl;
}
}

Mi objetivo es redirigir a la misma URL pero con HTTP si la URL tiene HTTPS. Pero este código no funciona, incluso si llega al bloque HTTPS. No se muestra ningún error ni advertencia. Ya he intentado usar document.location.href, location.href, this.router.navigateByUrl e inyectar DOCUMENT y usar this.document.location.href.

Estoy usando:

  • Angular: 7.1.0
  • Angular CLI: 7.1.4
  • Node: 10.15.3
  • SO: win32 x64
  • @angular/router: 7.1.4

¿Cómo lograr mi propósito?

Gracias de antemano,

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en javascript, angular, redirect, window.location y ngOnInit, sugiero los siguientes cambios en su código:

    ngOnInit() {
      const Url = window.location.href.trim().toLowerCase();
      if (Url.startsWith('https://')) {
        console.log('HTTPS');
        const newUrl = Url.replace('https://', 'http://');
        window.location.href = newUrl;
      }
    }
    

    En primer lugar, para evitar asignar un nuevo valor a this.document.location.href, recomiendo usar window.location.href en su lugar.

    En segundo lugar, sugiero usar const en lugar de let, ya que la variable Url no está destinada a ser reasignada.

    Por último, asegúrese de haber importado el objeto window del paquete @angular/platform-browser.

    Con estos cambios, el código debería funcionar como se espera y redirigir la página a la versión HTTP de la misma URL si se cargó originalmente a través de HTTPS.

Comments are closed.