Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 来自SpringRESTAPI端点的文本响应,如何在前端检索该响应_Json_Angular_Typescript_Spring Rest - Fatal编程技术网

Json 来自SpringRESTAPI端点的文本响应,如何在前端检索该响应

Json 来自SpringRESTAPI端点的文本响应,如何在前端检索该响应,json,angular,typescript,spring-rest,Json,Angular,Typescript,Spring Rest,Spring REST API正在响应以下响应: 成功执行时:它返回文本类型的响应 执行不成功时:返回JSON错误对象 前端服务级别: private detailsURL = 'http://localhost:8080/register'; constructor(private http:HttpClient){} register(regisDetails): Observable<any>{ return this.http.post(this.details

Spring REST API正在响应以下响应:

  • 成功执行时:它返回文本类型的响应
  • 执行不成功时:返回JSON错误对象
前端服务级别:

private detailsURL = 'http://localhost:8080/register';

constructor(private http:HttpClient){}

register(regisDetails): Observable<any>{
   return this.http.post(this.detailsURL,regisDetails);
}
如果发生错误,我会得到我应该得到的错误信息。但如果成功了,我就不会收到成功的消息

只是想知道是否有办法获取前端的文本类型响应。否则,为了成功执行,我必须更改后端以发送JSON类型的响应


请帮助我理解这件事。

您必须为您的回复设置状态。在控制器部分,您必须在api请求中提到consumes=“application/json”。

您应该在后端进行更改,并为success和后端提供json格式的响应。这将是理想的解决方案

提供与预期不同的响应确实是一个糟糕的设计。您可以在请求“accept:application/json”中检查头的值,并按照前端的预期提供响应

前端修复: 但是,在前端,您可以始终使用
JSON.parse(success)将文本转换为JSON对象,并根据需要进一步使用它。

success=>this.successMessage=JSON.parse(success)我尝试过这样做,但效果不太好您的意思是在Spring REST API的@PastMapping上说products=“application/JSON”。对吗?我试过它发送JSON类型的数据,但如何在前端访问它?因为它没有键值对。它只有一些文本。像“成功注册”这样回答你的问题吗?即使是这样,也应该通过更改返回状态中的响应类型来实现<代码>返回this.http.post(this.detailsURL,regisDetails,{responseType:'text'})
registerUser(){
   this.service.register(this.regisForm.value).subscribe(
     success => this.successMessage = success,
     error => this.errorMessage = error.error.errorMessage
   );
}