[解決済み] <img>: Unsafe value used in a resource URL context
Question
Since upgrading to the latest Angular 2 release candidate, my
img
tags:
<img class='photo-img' [hidden]="!showPhoto1" src='{{theMediaItem.photoURL1}}'>
are throwing a browser error:
ORIGINAL EXCEPTION: Error: unsafe value used in a resource URL context
The value of the url is:
http://veeu-images.s3.amazonaws.com/media/userphotos/116_1464645173408_cdv_photo_007.jpg
EDIT:
I have tried the suggestion made in the other solution that this question is supposed to be a duplicate of but I am getting the same error.
I have added the following code to the controller:
import {DomSanitizationService} from '@angular/platform-browser';
@Component({
templateUrl: 'build/pages/veeu/veeu.html'
})
export class VeeUPage {
static get parameters() {
return [[NavController], [App], [MenuController], [DomSanitizationService]];
}
constructor(nav, app, menu, sanitizer) {
this.app = app;
this.nav = nav;
this.menu = menu;
this.sanitizer = sanitizer;
this.theMediaItem.photoURL1 = this.sanitizer.bypassSecurityTrustUrl(this.mediaItems[1].url);
}
まだ同じエラーメッセージが出ます。
EDIT2です。
htmlも変更しました。
<img class='photo-img' [hidden]="!showPhoto1" [src]='theMediaItem.photoURL1'>
まだ同じエラーメッセージが表示されます
どのように解決するのですか?
rc.4を使っていますが、この方法はES2015(ES6)で動作します。
import {DomSanitizationService} from '@angular/platform-browser';
@Component({
templateUrl: 'build/pages/veeu/veeu.html'
})
export class VeeUPage {
static get parameters() {
return [NavController, App, MenuController, DomSanitizationService];
}
constructor(nav, app, menu, sanitizer) {
this.app = app;
this.nav = nav;
this.menu = menu;
this.sanitizer = sanitizer;
}
photoURL() {
return this.sanitizer.bypassSecurityTrustUrl(this.mediaItems[1].url);
}
}
HTMLの中で
<iframe [src]='photoURL()' width="640" height="360" frameborder="0"
webkitallowfullscreen mozallowfullscreen allowfullscreen>
</iframe>
関数を使用することで、サニタイズ後に値が変更されないようにすることができます。また、使用するサニタイズ関数はコンテキストに依存することに注意してください。
画像の場合
bypassSecurityTrustUrl
は動作しますが、他の用途ではドキュメントを参照する必要があります。
:
https://angular.io/docs/ts/latest/api/platform-browser/index/DomSanitizer-class.html
関連
-
[解決済み】Angular 2 - innerHTML スタイリング
-
[解決済み] npm start」と「ng serve」はいつ使う?
-
[解決済み] Angular Materialダイアログエリアの外をクリックしてダイアログを閉じないようにする(Angularバージョン4.0以上で使用可能)
-
[解決済み] Angular 2 http.post()がリクエストを送信しない
-
[解決済み] Angular2の変更検出:ネストされたオブジェクトに対してngOnChangesが発生しない
-
[解決済み] index.tsは何に使われているのですか?
-
[解決済み] ファイル 'app/hero.ts' is not a module error in console, where to store interfaces files in directory structure with angular2?
-
[解決済み] Angular 2でシングルトンサービスを作成するには?
-
[解決済み] Angularでオブジェクトを繰り返し処理する【重複】。
-
[解決済み] Angular 2のテンプレートでlet-*とは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Angular CLIでモジュール "angular-devkit/build-angular" が見つからない問題を解決する。
-
[解決済み] 安全でない値」の例外を発生させずに <iframe src="..."> を設定するにはどうしたらよいですか?
-
[解決済み] Angular 2+でngShowとngHideに相当するものは何ですか?
-
[解決済み] 最後のページに戻るには
-
[解決済み] 例外が発生しました。既知のネイティブプロパティではないため、'ngFor'にバインドできない
-
[解決済み] Angular 2.0のルーターがブラウザーの再読み込みで動作しない件
-
[解決済み] Angular 4 HttpClient クエリパラメータ
-
[解決済み] AngularプロジェクトでBootstrapを使うには?
-
[解決済み] AngularのHttpClientでエラーをキャッチする
-
[解決済み] Angular 2のテンプレートでlet-*とは何ですか?