我有一个Spring Rest后端设置以及一个React Client。两者都设置在不同的本地端口上。我正在尝试使用对我的spring rest api的访存调用从React客户端发送一个简单的请求。
使用Postman发送POST请求时,API会按预期响应。
从React客户端发送请求时,我收到以下400错误:
org.springframework.http.converter.HttpMessageNotReadableException:
Required request body is missing: public
org.springframework.http.ResponseEntity<?>
我已经执行以下操作:
这是我从react client获得的请求:
fetch(API_BASE_URL + '/api/auth/signin', {
method: 'POST',
headers: new Headers({
'Content-Type': 'application/json;charset=UTF-8',
'Access-Control-Request-Method': 'POST'
}),
body: {
username: this.state.uname,
password: this.state.password,
}
}).then(
function (response) {
if (response.status !== 200) {
console.log('Looks like there was a problem. Status Code: ' +
response.status);
return;
}
// Examine the text in the response
response.json().then(function (data) {
let json = JSON.parse(data);
let token = json.tokenType + " " + json.accessToken;
localStorage.setItem(ACCESS_TOKEN, token);
alert('successfully saved token:' + token);
});
}
)
.catch(function (err) {
console.log('Fetch Error :-S', err);
});
答案 0 :(得分:0)
对于那些感兴趣的人:
在有效负载中传递的数据格式不正确。尽管这可能看起来不合逻辑,但按如下方式创建变量:
let payload = {
username: this.state.username,
password: this.state.password,
};
并将其作为要获取的主体传递似乎可行。
希望这可以帮助其他面临相同问题的人。