我正在使用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;。
我的程序停止运行。我可以做什么?我需要收到这个字符串并使用它。
答案 0 :(得分:2)
你应该创建标题,而不是给它一个随机对象。
或者,您可以随意键入随机对象,以绕过错误(更麻烦但更容易)。
return this.http.post<string>('URL', {}, { responseType: 'text'} as any);