如何使用Angular 7从后端应用程序获取字符串响应

时间:2019-03-28 15:32:48

标签: angular angular7

我正在尝试从后台应用程序获取字符串响应。我搜索了这个问题,几乎在所有解决方案中,他们都添加了{responseType:“ text”}或{responseType:'text'作为'json'}以获取字符串,我添加了它,但我无法到达,这里是我的角度代码:

msg:any;
  func(){
    this.bookService.getRessource(url,{ responseType: "text"})
      .subscribe(data => {
        console.log(data)
        this.msg=data;
      }, err => {
        console.log(err)
      })
  }

这是我的服务,我必须在标题中添加jwt:

getRessource(url,res){
   let headers=new HttpHeaders({'Authorization':'Bearer '+this.authService.jwt});
    return this.http.get(url,{headers:headers});
  }

该功能将一本书添加到用户的收藏夹列表中,它可以工作并将其添加到数据库中,但是奇怪的是,错误消息显示在控制台中,并且我可以找到我想得到的字符串。但是我无法理解该函数的工作原理,然后显示错误消息!

这是我收到的错误消息:

HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url: "http://localhost:8080/user/addBookToUser?username=admin&id=9", ok: false, …}

1 个答案:

答案 0 :(得分:4)

在当前代码中,您没有将responseType: text放在正确的位置。它必须是实际的HttpClient get()headers的选项:

msg:any;

func() {
  this.bookService.getRessource(url)
    .subscribe(data => {
      console.log(data)
      this.msg = data;
    }, err => {
      console.log(err)
    })
}

getRessource(url) {
  const headers = new HttpHeaders({ 'Authorization': 'Bearer ' + this.authService.jwt });
  const options = { responseType: 'text', headers };
  return this.http.get(url, options);
}

希望有帮助!