Angular 5删除WP,REST API上的帖子

时间:2018-04-18 08:11:42

标签: wordpress angular rest api

我正在尝试使用删除请求删除帖子,但似乎我无法正确使用标题。

项目list.component.ts

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

    this.projectsService.deleteProject(project.id, { headers: headers }).subscribe(
      result => console.log(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, …}

我的猜测是因为“header:HttpHeaders”,但我不知道如何修复它。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

您没有将标头传递给删除请求。您在组件中创建的。 这就是它应该如何发展。

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);
}

答案 1 :(得分:0)

尝试使用

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