大家好,我的网站出现错误已经很长时间了,我在整个互联网上搜索了答案,但没有找到任何解决方案,这是我的onsubmit代码
onSubmit = () => {
fetch("http://localhost:2000/signin", {
method: "post",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
email: this.state.signinEmail,
password: this.state.signinPassword,
}),
})
.then((response) => response.json())
.then(console.log(this.state.signinEmail, this.state.signinPassword))
.then((data) => console.log(data));
};
我还检查了网络选项卡的响应,它说成功,但收到此错误不知道如何摆脱它。我也检查了解决方案 写 Accept:application/json 但仍然没有工作的 Stackoverflow,但它给了我“错误的请求”错误 后端代码为:
app.post("/signin", (req, res) => {
if (
req.body.email === database.users[0].email &&
req.body.password === database.users[0].password
) {
res.send("success");
} else {
res.status(400).json("error logging in");
}
});
答案 0 :(得分:1)
当您向服务器发出请求并将响应解析为 JSON,但它不是 JSON 时,就会发生这种情况。
fetch('/url').then(res => res.json())
实际请求工作正常。它得到了回应。但是 res.json()
失败了。
根本原因是服务器返回了 HTML 或其他一些非 JSON 字符串。
您可以尝试将 res.json()
更改为 res.text()
。
onSubmit = () => {
fetch("http://localhost:2000/signin", {
method: "post",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
email: this.state.signinEmail,
password: this.state.signinPassword,
}),
})
.then((response) => response.text())
.then((data) => console.log(data));
};