我在我的角度应用程序中实现了ifame,首先它阻止了资源,然后我添加了一个管道来访问资源,现在浏览器因为混合内容而阻止它,因为它没有通过https加载内容
stundenplan.component.ts:
<div class="col-sm-9 content">
<div class="dashhead">
<div class="dashhead-titles">
<h6 class="dashhead-subtitle">TeamCloud</h6>
<h2 class="dashhead-title">Stundenplan</h2>
</div>
</div>
<hr class="m-t">
<div class="container">
<iframe style="width: 100%; height: 900px;" frameborder="0" [src]="'http://******' | safeIframe"></iframe>
</div> <!-- /container -->
</div>
安全-iframe.pipe.ts:
import { DomSanitizer } from '@angular/platform-browser';
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'safeIframe'
})
export class SafeIframePipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer){}
transform(url:string) {
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
}
加载页面时出错 混合内容:“https://teamcloud。****** / stundenplan”页面是通过HTTPS加载的,但是请求了一个不安全的资源“http:// ******”。此请求已被阻止;内容必须通过HTTPS提供
答案 0 :(得分:1)
This is a browser-restriction;当在安全(HTTPS)页面上时,浏览器将默认拒绝加载不安全的活动内容(例如:脚本,iframe)。使用Angular解决这个问题不是问题。你基本上有3个选择: