Angular 7 - ngOnInit - window.location.href 不工作 - 从 HTTPS 到 HTTP
Angular 7 - ngOnInit - window.location.href not working - From HTTPS to HTTP
我的 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;
}
}
我的目标是,如果 Url 使用 HTTPS,那么我需要重定向到相同的 Url 但使用 HTTP。但是即使代码到达 HTTPS 块,这段代码也不起作用。也没有显示错误或警告。
我已经尝试使用
- document.location.href
- location.href
- this.router.navigateByUrl
- 正在注入 DOCUMENT 并使用它。document.location.href
我正在使用
- Angular: 7.1.0
- Angular CLI:7.1.4
- 节点:10.15.3
- OS: win32 x64
- @angular/router: 7.1.4
如何实现我的目的?
提前致谢,
我必须在 IIS 中执行此操作。
没有解决方案 n JavaScript.
如果条件 -
你应该考虑更干净一点
if (window.location.protocol === 'https:') {
const correctProtocolUrl = window.location.href.trim().toLocaleLowerCase().replace('https://', 'http://');
window.location.href = correctProtocolUrl;
}
我已经在 angular 13 中对此进行了测试,但预计会有类似的行为,因为 angular 不应该对 window 做任何事情。
但是如果你有后端解决方案,我认为这是最好的方法。
我的 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;
}
}
我的目标是,如果 Url 使用 HTTPS,那么我需要重定向到相同的 Url 但使用 HTTP。但是即使代码到达 HTTPS 块,这段代码也不起作用。也没有显示错误或警告。 我已经尝试使用
- document.location.href
- location.href
- this.router.navigateByUrl
- 正在注入 DOCUMENT 并使用它。document.location.href
我正在使用
- Angular: 7.1.0
- Angular CLI:7.1.4
- 节点:10.15.3
- OS: win32 x64
- @angular/router: 7.1.4
如何实现我的目的?
提前致谢,
我必须在 IIS 中执行此操作。 没有解决方案 n JavaScript.
如果条件 -
你应该考虑更干净一点if (window.location.protocol === 'https:') {
const correctProtocolUrl = window.location.href.trim().toLocaleLowerCase().replace('https://', 'http://');
window.location.href = correctProtocolUrl;
}
我已经在 angular 13 中对此进行了测试,但预计会有类似的行为,因为 angular 不应该对 window 做任何事情。
但是如果你有后端解决方案,我认为这是最好的方法。