Javascript 角度2-异常:错误:资源URL上下文中使用了不安全的值
我得到以下错误: 角度2-异常:错误:资源URL上下文中使用了不安全的值 这可能与启动时不立即使用媒体项有关吗?还是与URL不安全有关?我正在试着消毒它Javascript 角度2-异常:错误:资源URL上下文中使用了不安全的值,javascript,angular,typescript,Javascript,Angular,Typescript,我得到以下错误: 角度2-异常:错误:资源URL上下文中使用了不安全的值 这可能与启动时不立即使用媒体项有关吗?还是与URL不安全有关?我正在试着消毒它 export class HomeComponent { sanitizer: DomSanitizationService; errorMessage: string; activeMedia: MediaItem = new MediaItem(0, '', '', '', '', '', ''); constructo
export class HomeComponent {
sanitizer: DomSanitizationService;
errorMessage: string;
activeMedia: MediaItem = new MediaItem(0, '', '', '', '', '', '');
constructor(
private mediaStorage: MediaStorageService,
private harvesterService: HarvesterService,
sanitizer: DomSanitizationService) {
this.sanitizer = sanitizer;
// Initial call -
harvesterService.getMediaItems(10, 'type', 'category');
let subscription = harvesterService.initialMediaHarvestedEvent.subscribe(() => {
this.activeMedia = mediaStorage.mediaList[0];
let newURL = this.activeMedia.URL + '?rel=0&autoplay=1';
newURL = newURL.replace('watch?v=', 'v/');
this.activeMedia.URL = newURL; //sanitizer.bypassSecurityTrustUrl(newURL);
console.log(newURL);
});
}
cleanURL(oldURL: string): SafeResourceUrl {
return this.sanitizer.bypassSecurityTrustUrl(oldURL);
}
}
模板代码为:
<div class="row" >
<iframe
id="video"
class="video"
src="{{ cleanURL(activeMedia.URL) }}"
frameborder="0"
allowfullscreen>
</iframe>
</div>
更新:更改
src="{{cleanURL(activeMedia.URL)}}"
致:
我得到:原始异常:错误:需要一个安全的资源URL,得到一个URL
通过将cleanURL方法中的代码更改为:
return this.sanitizer.bypassSecurityTrustResourceUrl(oldURL);
而不是:
return this.sanitizer.bypassSecurityTrustUrl(oldURL);
试试这个:
cleanURL(oldURL: string): string {
return this._sanitationService.sanitize(SecurityContext.URL, oldURL);
}
我已经用这个解决方案显示了PDF,但是cleanURL()方法运行了多次,导致PDF闪烁。不要作为函数运行,保持值持久不计算
cleanURL(oldURL: string): string {
return this._sanitationService.sanitize(SecurityContext.URL, oldURL);
}