Есть ли способ изменить тип ответа в методе post (angular 5) ПОСЛЕ получения ответа?
Проблема: когда ответ в порядке, мне нужно, чтобы responseType был blob . Если нет - мне нужен json responseType.
Я немного погуглил, но не смог найти ответ, который бы полностью соответствовал моей ситуации.
Пример кода (кратко):
// just simple method in service
export class MyService {
constructor(private http: HttpClient) {}
doSomething(data, fileName): Observable<any> {
return this.http.post('url', data, {
headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded'),
params: new HttpParams().set('fileName', fileName),
responseType: 'blob'
})
}
}
// just classic method in component
export class MyComponent {
constructor(private myService: MyService) {}
this.myService.doSomething(this.data, this.file).subscribe(() => {
// here doing something useful
}, (error: HttpErrorResponse) => {
// handling the error
})
}
Итак, еще раз, в этом случае каждый раз, когда я получаю ответ в blob, и это здорово, если все в порядке. Но если у меня есть ошибка, мне нужен ответ, чтобы быть в JSON. И наоборот.
Как мне установить правильный responseType в обеих ситуациях?
Заранее спасибо.