Soru Angular2 Base64 güvenli olmayan URL değerini dezenfekte ediyor


Sunucumdan gelen yanıt aşağıdaki gibi görünüyor:

[{"coreGoalId":1,"title":"Core goal 1","infrastructure":"Sample Infrastructure","audience":"People","subGoals":null,"benefits":[{"benefitId":1,"what":"string","coreGoalId":1}],"effects":null,"steps":null,"images":[{"imagelId":1,"base64":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcU\nFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgo\nKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wgARCAIWAe4DASIA\nAhEBAxEB/8QAHAABAAIDAQEB"}]}]

İçinde döndürülen base64 görüntüsünü görüntülemeye çalışıyorum.

Benim bileşenimde:

ngOnInit() {

    this.homeService.getGoals()
    .subscribe(
        goals => this.coreGoals = goals,
        error =>  this.errorMessage = <any>error);
}

ve sonra şablonda:

<ul>
    <li *ngFor="let goal of coreGoals">
        {{goal.title}}
        <img [src]="'data:image/jpg;base64,'+goal.images[0].base64 | safeHtml" />
    </li>
</ul> 

SafeHtml, aşağıdaki gibi oluşturduğum bir Boru ise:

import { Pipe } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';

@Pipe({name: 'safeHtml'})
export class SafeHtml {
  constructor(private sanitizer:DomSanitizer){}

  transform(html) {
    return this.sanitizer.bypassSecurityTrustHtml(html);
  }
}

Bu bana verir Required a safe URL, got a HTML hata. Burada neyin yanlış gidiyor? Boruyu buradan çıkarırsam <img /> o zaman güvensiz url diyor.


21
2018-03-31 13:08


Menşei




Cevaplar:


İhtiyacın olur

bypassSecurityTrustResourceUrl(html);

yerine

bypassSecurityTrustHtml(html);

28
2018-03-31 13:10



Teşekkürler! Bu benim hatamdı. - Nitish


Bende aynı sorun vardı. Uygulamamız 'X', yerel olarak yüklenen görüntüleri, veritabanına kaydetmeden önce onları base64'e çevirerek depolamak için kullanılır. veriler: Görüntü / jpg; base64). Görüntüyü kurtarırken, aynı sorunu yaşadım. Eski veriyi kurtarılan base64 dizesine uydururdum. Yukarıdaki hatayı atmak için kullanılır. Böylece, tüm dönüştürülmüş dizeyi haşhaş etmeden saklamaya karar verdik ve şimdi iyi çalışıyor. Bak, eğer yardımcı olursa!


0
2018-05-17 12:42