Метод POST и GET работают отлично, но метод PUT не работает.
У меня есть компонент с этой функцией для обновления данных альбома через подписку:
onChangeTitle() {
this.album.name = this.titleInput;
const albumToEdit: IAlbumEdit = {
'name': this.album.name,
'description': this.album.description,
'public': this.album.public
};
this.albumService.putAlbum(this.album.id, albumToEdit).subscribe(
album => {
this.album = album;
},
error => {
this.handleError('no se ha podido modificar el álbum: ' + error);
this.titleInput = this.album.name;
}
);
}
Служба имеет эту функцию, которая возвращает Observable:
putAlbum(id, album: IAlbumEdit): Observable<IAlbum> {
return this.http.put<IAlbum>(`${AppSettings.API_URL}/album/${id}`, album);
}
Это действительно легко, но я не понимаю, почему этот метод пут на httpclient не запускается (я вижу на сетевом мониторе в Firefox, что любой пут вызывает).
Кроме того, у меня есть перехватчик для добавления заголовка авторизации, но он не выполняется методом PUT.
Мой перехватчик такой:
export class JwtInterceptor implements HttpInterceptor {
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// add authorization header with jwt token if available
console.log('intercept');
const currentUser = JSON.parse(localStorage.getItem('currentUser'));
if (currentUser && currentUser.token) {
request = request.clone({
setHeaders: {
Authorization: `Bearer ${currentUser.token}`
}
});
}
console.log(request);
return next.handle(request);
}
}