Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.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
Angular 无正文随机发送的POST请求_Angular_Spring Boot_Axios_Http Post_Http Status Code 400 - Fatal编程技术网

Angular 无正文随机发送的POST请求

Angular 无正文随机发送的POST请求,angular,spring-boot,axios,http-post,http-status-code-400,Angular,Spring Boot,Axios,Http Post,Http Status Code 400,我有一个调用JavaSpring引导后端API的角度前端。前端多次向后端发送以下请求,但其中一些请求失败,状态代码400。记录的错误为org.springframework.http.converter.httpmessagenoteradableexception:缺少必需的请求正文。但是,当我在Chrome中查看网络选项卡时,请求看起来不错,如果我再次发送请求,它就成功了。但最奇怪的是,如果我通过curl调用它,它永远不会失败 前端: const endpoint='BACKEND_URL/

我有一个调用JavaSpring引导后端API的角度前端。前端多次向后端发送以下请求,但其中一些请求失败,状态代码400。记录的错误为
org.springframework.http.converter.httpmessagenoteradableexception:缺少必需的请求正文
。但是,当我在Chrome中查看网络选项卡时,请求看起来不错,如果我再次发送请求,它就成功了。但最奇怪的是,如果我通过curl调用它,它永远不会失败

前端:

const endpoint='BACKEND_URL/settings';
常量数据=[{“id”:123,“设置”:“设置”}];
常量头={
“内容类型”:“应用程序/json;字符集=UTF-8”,
“授权”:“访问令牌”
};
常量参数={};
post(端点,数据,{headers,params})
.然后(功能(响应){
日志(response.status、response.data);
})
.catch(函数(错误){
console.log('error',error.response.status);
});
后端:

@Api(tags=“Api name”,description=“Api description”)
@RestController
@请求映射(“/”)
公共类设置控制器{
@ApiOperation(“端点名称”)
@PostMapping(path=“/settings”,consumes=MediaType.APPLICATION\u JSON\u UTF8\u VALUE,products=MediaType.APPLICATION\u JSON\u UTF8\u VALUE)
@交易的
公共响应属性更新设置(@RequestBody@ApiParam(“description”)列表设置)引发ApiException{
//没有主体时无法访问的代码
}
}
使用卷曲调用

curl-X POST\
后端URL/设置\
-H'授权:访问\u令牌'\
-H'内容类型:应用程序/json'\
-d'[{“id”:123,“设置”:“设置”}]'

可能您需要使用字符串格式(而不是数组格式)发送身体部位的数据,您可以尝试使用下面的代码吗-

const data = [{"id":123,"settings":"SETTINGS"}];
....

axios.post(endpoint, JSON.stringify(data), { headers, params })
....

同样的结果/你能分享失败并通过的chrome请求屏幕截图吗?试着删除consumes属性出于兴趣,你为什么要使用axios而不是angular http客户端?