Angular 5 удаление поста на WP, REST API

Я пытаюсь удалить сообщение с помощью запроса на удаление, но мне кажется, что заголовки не отображаются правильно.

project-list.component.ts

deleteProject(project) {
    let headers: Headers = new Headers({
      'Authorization': 'Bearer ' + this.token
    });

    this.projectsService.deleteProject(project.id, { headers: headers }).subscribe(
      result => console.info(result),
      err => console.error(err)
    );
  }

projects.service.ts

deleteProject(id: number, { headers: headers }): Observable<Project[]>{
    return this.http.delete<Project[]>(this._wpBase + 'posts/' + id);
  }

Запрос DELETE направляется по правильному URL-адресу, но он неавторизован. Под заголовками написано

HttpErrorResponse {headers: HttpHeaders, status: 401, statusText: "Unauthorized", url: "http://.../wp-json/wp/v2/posts/69", ok: false, …}

Я предполагаю, что это из-за заголовков: HttpHeaders, но я не знаю, как это исправить. Любая помощь?

Вы не добавляете заголовки к фактическому вызову delete

Fussel 18.04.2018 10:14
Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
0
1
178
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте использовать

deleteProject(id: number, headers: any): Observable<any>{
    return this.http.delete(this._wpBase + 'posts/' + id, headers);
}
Ответ принят как подходящий

Вы не передаете заголовки в запрос на удаление. Который вы создали в своем компоненте. Вот как должно быть.

deleteProject(id: number, { headers: headers }): Observable<Project[]>{
    return this.http.delete<Project[]>(this._wpBase + 'posts/' + id, headers);
  }

Обновлять:

Ваше удаление не вернет объект Project.

deleteProject(id: number, { headers: headers }): Observable<any>{
        return this.http.delete(this._wpBase + 'posts/' + id, headers);
      }

Обновление 2:

Обновлен параметр

deleteProject(id: number, headers: any): Observable<any>{
    return this.http.delete(this._wpBase + 'posts/' + id, headers);
}

[ts] Тип «Observable <HttpEvent <Project [] >>» не может быть назначен типу «Observable <Project []>». Тип «HttpEvent <Project []>» нельзя присвоить типу «Project []». Тип «HttpSentEvent» нельзя присвоить типу «Project []». Свойство includes отсутствует в типе HttpSentEvent. Вот что мне говорит код Visual Studio

Heiko Piirme 18.04.2018 10:27

К сожалению, он по-прежнему говорит, что не авторизован, и заголовок кажется пустым: c

Heiko Piirme 18.04.2018 10:37

Тогда это может быть проблема с токеном, который вы передаете. !!

Dheeraj Kumar 18.04.2018 11:39

Другие вопросы по теме