响应类型角度不兼容

时间:2018-03-15 11:30:12

标签: json spring angular

我正在使用Angular 5和Spring Backend。在请求中,我返回一个字符串。

后端代码:

 @PostMapping(value = "login")
public ResponseEntity<?> verifyLogin(@RequestBody String login){
    System.out.println("LOGIN REALIZADO");
    LoginObject loginO = gson.fromJson(login, LoginObject.class);

    if(verify(loginO)){
        return new ResponseEntity<String>("AAA",HttpStatus.OK);
    }else{
        return new ResponseEntity<String>("ERROR-LOGIN",HttpStatus.OK);
    }


}

如您所见,我返回AAA或ERROR-LOGIN。

在我的前端,我使用以下代码收到:

 loginQuery(login: Login):Observable<string>{
     return this.http.post<string>('http://localhost:8080/login',JSON.stringify(login),{ responseType: 'text' as 'text'});
 }

这很好用。因为我可以在浏览器的控制台中打印AAA。但是......控制台(Intellij)显示了这个错误:

  

src / app / login / sevices / login.service.ts(15,68)中的错误:错误TS2345:   类型的参数&#39; {responseType:&#34; text&#34 ;; }&#39;不能转让给   参数类型&#39; {headers?:HttpHeaders | {[header:string]:   字符串|串[]; };观察?:&#34;身体&#34 ;; params?:Ht ......&#39;。种类   property&#39; responseType&#39;是不相容的。       输入&#39;&#34; text&#34;&#39;不能分配给&#39;&#34; json&#34;&#39;。

我的程序停止运行。我可以做什么?我需要收到这个字符串并使用它。

1 个答案:

答案 0 :(得分:2)

你应该创建标题,而不是给它一个随机对象。

或者,您可以随意键入随机对象,以绕过错误(更麻烦但更容易)。

return this.http.post<string>('URL', {}, { responseType: 'text'} as any);