Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.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
Java 向服务器发送POST请求,服务器';s响应为空,角度-弹簧启动_Java_Angular_Spring Boot_Http_Angular Httpclient - Fatal编程技术网

Java 向服务器发送POST请求,服务器';s响应为空,角度-弹簧启动

Java 向服务器发送POST请求,服务器';s响应为空,角度-弹簧启动,java,angular,spring-boot,http,angular-httpclient,Java,Angular,Spring Boot,Http,Angular Httpclient,我想用angular客户端向spring引导服务器发送POST请求 服务器成功地接收到数据和一个包含200个代码的WSER,正文包含一个包含“ok”的字符串 但是客户端作为anwser接收null 角度代码: httpOptions={ 标题:新的HttpHeaders({ “内容类型”:“应用程序/json”, “接受”:“应用程序/json”, “访问控制允许方法”:“POST,GET” }) }; this.http.post(this.URL、JSON.stringify(this.a

我想用angular客户端向spring引导服务器发送POST请求

服务器成功地接收到数据和一个包含200个代码的WSER,正文包含一个包含“ok”的字符串

但是客户端作为anwser接收null

角度代码:

httpOptions={
标题:新的HttpHeaders({
“内容类型”:“应用程序/json”,
“接受”:“应用程序/json”,
“访问控制允许方法”:“POST,GET”
})
};
this.http.post(this.URL、JSON.stringify(this.alert)、this.httpOptions)
.subscribe((结果:字符串)=>{
如果(结果==null | |结果=='error'){
//如果失败;
}否则{
//如果成功;
}
console.log('result:'+result);
})
弹簧启动代码:

@交叉原点(原点=”http://localhost:9000")
@PostMapping(value=“/url”)
公共响应属性objDataController(@RequestBody ObjData ObjData){
HttpHeaders resHeader=新的HttpHeaders();
resHeader.set(“原点”http://localhost:8080");
resHeader.set(“内容类型”、“应用程序/json”);
resHeader.set(“接受”、“应用程序/json”);
//一些代码
返回ResponseEntity.ok()
.headers(resHeader)
.机构(“ok”);
}
在console.log获取:
result:null


Thank

遇到了类似的问题,它有助于指定响应类型:

const headers = new HttpHeaders({'Content-Type': 'application/json'});
this.httpClient.delete(url, {headers: headers, responseType: 'text'});

这是chrome控制台给你带来的麻烦,当涉及到可观测值时,它无法正确解释值。我想如果您在“if success”块中使用结果,它肯定会工作

好的,我解决了我的问题,我更改了以下内容:

returnresponseEntity.ok()
.headers(resHeader)
.机构(“ok”);
作者:

Gson-Gson=new-Gson();
返回ResponseEntity.ok()
.headers(resHeader)
.body(gson.toJson(“ok”,String.class));

谢谢你的支持

您是否可以发送实际请求的屏幕截图(浏览器控制台的“网络”选项卡)。一切都在本地主机上运行吗?可能是飞行前请求失败导致了一些cors问题。您查看了f12控制台中的响应了吗?@marcel是的,服务器和客户端都在本地主机中,这就是我在spring上使用
@CrossOrigin
的原因-boot@JensAlenius对响应称订阅方法回调中的
result:null
首先成功,然后出错。因此,HttpClient成功地处理了它。例如:。订阅(successCallback,failureCallback)并调用success,正如我们在控制台中看到的那样。我想尸体可能是空的。你检查过f12中的响应库了吗?谢谢,但我想这对我没什么帮助,我使用POST而不是DELETE,我的问题是
。订阅
可能仍然值得一试。“我的问题在于订阅”是什么意思?因为如果您的httpClient尝试将“OK”字符串解释为JSON,它将不会返回该字符串。。。