【发布时间】:2020-09-18 08:53:36
【问题描述】:
我在尝试从 react 应用程序发送数据时收到错误类型。
请注意,我正在使用内核。 它在客户端的本地主机上运行良好,而不是在在线托管时运行良好。
注意:当像这样使用邮递员时,我会从 json 得到结果:
{
"success":"true",
"ID":"token"
}
这是expressjs中的后端代码源:
router.post("/sickers/user/login/", cors(), (req, res) => {
var values = req.body;
var pass = values.password;
var email = values.email;
if (pass !== null || pass !== "") {
try {
con.query("SELECT Password ,ID FROM `sickers` WHERE Email='" + email + "'", function(err, rows, field) {
if (err) {
console.log(err);
res.send("an error detected try later");
} else {
try {
if (pass == rows[0].Password) {
//create the signed function
jwt.sign(rows[0].ID, "secretkey", (err, token) => {
res.json({ success: "true", ID: token })
})
//session.session( )
} else {
res.json({ success: "false" });
}
} catch {
res.json({ success: "false" });
}
}
});
} catch (e) {
res.json({ success: "false" });
}
}
});
客户端方法是:
//submit values
const submithandler=async (e)=> {
e.preventDefault();
try{
console.log('start')
await fetch('url/api/sickers/user/login/',{
method:'post',
headers:{
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body:JSON.stringify({
password:password,
email:email
})
})
.then(response =>
{
console.log("response");
response.json().then(data =>
{
console.log(data);
if(data.success=="true")
{
sessionStorage.setItem('ID',data.ID);
window.location.reload();
seterr("");
}
else
{
seterr("try again");
}
});
});
}
catch(e)
{
console.log(e)
}
}
我错过了什么吗?
提前致谢。
【问题讨论】:
-
你能在服务器上添加你的CORS配置吗?在 localhost 上,两个应用程序都通过相同的 DNS (localhost) 进行通信,但如果托管在某种类型的云网络上,如果配置不正确,它们可能位于不同的域上,从而导致 CORS 问题
-
感谢回复,我会尝试添加权限,我认为这正是问题所在,因为我在我的根目录下没有找到.htaccess文件或者它被隐藏了。
-
我在 .htaccess 文件中添加了两行用于允许标题,但我注意到我仍然有同样的问题。
标签: node.js reactjs api express cors