应用于 URL 的 DomSanitizer 将其重定向到本地主机?



当我通过DomSanitizer传递远程URL时,http://localhost:4200 被前缀为URL前缀,结果我得到了404。

GET http://localhost:4200/.cs.uic.edu/~i101/SoundFiles/Fanfare60.wav 404 (Not Found)

原始网址:https://www2.cs.uic.edu/~i101/SoundFiles/Fanfare60.wav

我的代码:

constructor(private sanitizer: DomSanitizer) {}
public getSantizeUrl(url: string) {
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}

还有我的模板:

<audio #player style="width: 100%" controls="controls" [src]="getSantizeUrl(chunk.value)" >    
</audio>

我错过了什么吗?为什么是前缀? FWIW bypassSecurityTrustUrl(url( 具有相同的效果。

谢谢

可能是 getSantizeURL 的响应迫使重定向来自 src。 尝试将 url 保存在变量中,例如:

import { Component } from '@angular/core';
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
@Component({
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent
{
public audioUrl: SafeResourceUrl;
constructor(private sanitizer: DomSanitizer) {}
getSantizeUrl(url: string) {
this.audioUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
}

在模板中:

<audio #player style="width: 100%" controls="controls" [src]="audioUrl" >    
</audio>

可能你应该在onInit中调用getSantizeUrl,如果你已经有网址来santize或从事件中与chunk.value的变化相关的

感谢您的输入,看来我有一些用户错误。

URL甚至在到达消毒剂之前就被破坏了:/

最新更新