Я использую angular2-jwt для авторизации запросов. У меня есть запрос на получение, который извлекает несколько документов из API.Угловой 2 получить изображение src из авторизованного запроса
Документ может иметь несколько изображений, которые также должны быть получены с помощью авторизованного запроса. Таким образом, очевидно, что вызов их напрямую не работает.
Я последовал этому примеру: https://stackoverflow.com/a/40862839/909723
у меня есть два вопроса:
Без асинхронном я получаю: GET http://localhost:4200/[object%20Object] 404 (Not Found) И с асинхронном я получаю: недопустимый аргумент «[ object Object] 'для pipe' AsyncPipe 'Я попробовал его с данными: image/jpg; и без
части шаблона
<md-card *ngFor="let document of documents">
<md-toolbar color="accent" *ngIf="getDocName(document)">
<span class="nowrap">{{getDocName(document)}}</span>
<span class="country-full-width"></span>
</md-toolbar>
<md-card-content>
<div *ngFor="let image of getImages(document)">
<img class="image" [src]="getImageSrc(image.image_id) | async" />
</div>
</md-card-content>
</md-card>
Я получил услугу, которая использует angular2-JWT - AuthHttp
@Injectable()
export class ImageService {
constructor(public authHttp: AuthHttp, public http: Http, public sanitizer: DomSanitizer) {}
getImageSrc(id, type){
let url = Config.apiUrl + "/images/" + id + "/thumb.jpg"
let headers = new Headers();
headers.append('Content-Type', 'image/jpg');
return this.authHttp.get(url, {
headers: headers,
responseType: ResponseContentType.Blob
})
.map(res => {
return new Blob([res["_body]"]], {
type: res.headers.get("Content-Type")
});
})
.map(blob => {
var urlCreator = window.URL;
return this.sanitizer.bypassSecurityTrustUrl(urlCreator.createObjectURL(blob));
})
}
}
Эта функция вызывается в шаблоне
getImageSrc(id)
{
return this.imageService.getImageSrc(id)
//.subscribe (
// data => data,
// err => console.log(err)
//);
}
Надеюсь, что кто-то может помочь
Вы извлечение сгустков изображений из вашей службы? Или фактическое местоположение изображения? – MikeOne
Другими словами, что это значит? .get (Config.apiUrl + "/ images /" + id + "/thumb.jpg") – MikeOne
Вы имеете в виду фактическое изображение, которое я предполагаю? В этом случае это не сработает? .map (res => res.json); – MikeOne