No primeiro exemplo demonstrado:
cadastra(foto: Foto): Observable<Object> {
if(foto._id) {
return this.http.put(this.url + '/' + foto._id, JSON.stringify(foto),
{ headers: this.headers })
o correto não seria que o parametro para o método cadastra não fosse do tipo FotoComponent ?
cadastra(foto: FotoComponent): Observable<Object> {