ile görüntü veya bayt veri alın, bu yüzden basit bir <img src="myapi/example/145"/>
ben bizim API hakkında imza + kimlik doğrulaması çünkü bir ajax isteği ile benim görüntüleri almak gerekir bir web uygulaması için http
yana kullanarak görüntüleri alamayan biz angular2 kullanıyoruz, biz açıkça damla ya da böyle bir şey aradı, ancak static_response.d.ts
dosyasında belirtildiği gibi:
/**
* Not yet implemented
*/
blob(): any;
Yani tamam, şimdilik bunu yapamaz, ben thie özellik için beklemek zorunda uygulanacak.
Ama sorun bekleyemem, bu yüzden görüntü verisini yanıt almak için bir düzeltmeye veya küçük bir hack'e ihtiyacım var ve hack'imi kaldırmam ve blob()
yöntem çağrısını uygulanacak. ApiService.test()
yöntemle
export class AppComponent {
constructor(private api:ApiService, private logger:Logger){}
title = 'Tests api';
src='http://placekitten.com/500/200'; //this is src attribute of my test image
onClick(){ //Called when I click on "test" button
this.api.test().then(res => {
console.log(res._body);
var blob = new Blob([new Uint8Array(res._body)],{
type: res.headers.get("Content-Type")
});
var urlCreator = window.URL;
this.src = urlCreator.createObjectURL(blob);
});
}
}
:
Bu çalıştıtest():Promise<any> {
return this.http.get(this._baseUrl + "myapi/example/145", this.getOptions())
//getOptions() is just creating three custom headers for
//authentication and CSRF protection using signature
.toPromise()
.then(res => {
this.logger.debug(res);
if(res.headers.get("Content-Type").startsWith("image/")){
return res;
}
return res.json();
})
.catch(res => {
this.logger.error(res);
return res.json();
});
}
Fakat, ondan herhangi bir resmi almak ve yanıt verilerini günlüğü görüntü veridir büyük bir dize gösterir yoktur.
Bunu başarmak için bir hackiniz var mı?
Teşekkürler! bunu anlamaya yardım etti! – brando
Bugün 'res => res.blob()' işlevini kullanabilirsiniz. Açısal kullanım yeni sürümlerini 'başlıkları ise –
:. Yeni HttpHeaders() Büyük Works –