[解決済み] 安全でない値」の例外を発生させずに <iframe src="..."> を設定するにはどうしたらよいですか?
2022-02-14 15:57:10
質問
チュートリアルを進めているところです。
iframe
src
属性があります。
<iframe width="100%" height="300" src="{{video.url}}"></iframe>
これは例外を投げます。
Error: unsafe value used in a resource URL context
at DomSanitizationServiceImpl.sanitize...
を使ったバインディングは既に試しています。
[src]
を使用していますが、うまくいきません。
解決方法は?
v8アップデート
以下の回答はうまくいきますが
は、あなたのアプリケーションをXSSセキュリティの危険にさらすことになります。
.
を使う代わりに
this.sanitizer.bypassSecurityTrustResourceUrl(url)
を使用することが推奨されます。
this.sanitizer.sanitize(SecurityContext.URL, url)
更新情報
について RC.6^ バージョンを使用します。 DomSanitizer
そして、良いオプションは、そのために純粋なパイプを使用することです。
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer} from '@angular/platform-browser';
@Pipe({ name: 'safe' })
export class SafePipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) {}
transform(url) {
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
}
を追加することを忘れないでください。
SafePipe
を
declarations
の配列を AppModule に追加します。(
ドキュメントにあるように
)
@NgModule({
declarations : [
...
SafePipe
],
})
html
<iframe width="100%" height="300" [src]="url | safe"></iframe>
を使用する場合
embed
というタグがありますが、これは面白いかもしれません。
旧バージョンRC.5
を活用することができます。
DomSanitizationService
このように
export class YourComponent {
url: SafeResourceUrl;
constructor(sanitizer: DomSanitizationService) {
this.url = sanitizer.bypassSecurityTrustResourceUrl('your url');
}
}
そして、バインドして
url
をテンプレートに追加します。
<iframe width="100%" height="300" [src]="url"></iframe>
以下のimportを追加することを忘れないでください。
import { SafeResourceUrl, DomSanitizationService } from '@angular/platform-browser';
関連
-
[解決済み】Angular2 CLI エラー "@angular/compiler-cli" パッケージが正しくインストールされていません。
-
[解決済み】Angular2エラー。exportAs "が "ngForm "に設定されたディレクティブは存在しません。
-
[解決済み] NullInjectorError: MatDialogRef 用のプロバイダがありません
-
[解決済み] Typescript - コードが TS1128: Declaration or Statement expected というエラーでビルドに失敗するが、コードを提供すると期待通りに実行される。
-
[解決済み] Uncaught (in promise): Ionic 2でcordova_not_available。
-
[解決済み] モジュール "ionic-native" が見つかりません。
-
[解決済み] Angular 2 - EXCEPTION: Error: リソース URL コンテキストで安全でない値が使用されています。
-
[解決済み] Angular2の$document.ready()に相当します。
-
[解決済み] Angular 4 - "BrowserAnimationsModule "または "NoopAnimationsModule "のいずれかをアプリケーションに組み込んでください。
-
[解決済み] <img>: Unsafe value used in a resource URL context
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】VSCodeはモジュール'@angular/core'や他のモジュールを見つけることができません。
-
[解決済み】Angularのエラーです。NgModuleアノテーションを追加してください。
-
[解決済み】Angular: オブジェクトをサポートしているdiffが見つからない '[object Object]'
-
[解決済み】angularモジュールでModule has no exported memberエラー
-
[解決済み] AngularのmatSortがソートされない
-
[解決済み] CLIでコンポーネントを削除する最も良い方法は何ですか?
-
[解決済み] Angular2 - エラー。セレクタ "app-root" はどの要素にもマッチしませんでした。
-
[解決済み] Error.を修正する方法 No value accessor for form control with name' in Angular Unit Test?
-
[解決済み] Angular2 Selectorが、ネストしたComponentのどの要素にもマッチしない。
-
[解決済み] <img>: Unsafe value used in a resource URL context