问题描述
我有一个节点 JS 后端,每次我重新启动应用程序时,它在回答我向该后端发出的第一个请求时都返回状态代码 304。 我已经阅读了状态代码 304 并且据说这意味着请求正在获取的内容没有改变,但是,由于我在第一个请求中得到了 304,我的前端实际上没有任何有用的数据来处理,因为它是自应用程序启动以来发出的第一个请求。 我试图禁用电子标签之类的东西,但实际上没有任何帮助,因为我无法在第一个请求中获得任何数据。
Node JS 代码如下:
router.get('/results',async function(req,res){
const authHeader = req.headers.authorization;
const results = [];
for (let i = 1; i < 11; i++) {
results.push({evaluation: i,total: 0,equipamentos: []});
}
if(authHeader){
const token = authHeader.split(' ')[1];
await jwt.verify(token,accessTokenSecret,async (err,user) =>{
if(err){
return res.sendStatus(403)
}
const db_form = client.db("mavideobo").collection("form");
await db_form.find( {owner: jwt.decode(token).username}).toArray(function (err,result) {
if (err) {
res.send(err);
} else {
result.forEach(formAnswer => {
results[formAnswer.Evaluation - 1].total++;
})
}
})
res.status(200).json(results);
})
}else{
res.sendStatus(401);
}
})
反应函数如下:
const getResultsData = async () => {
setData([]);
await fetch("/api/form/results",{
headers: {
Authorization: `Bearer ${sessionStorage.getItem("authToken")}`,"Content-Type": 'application/json',"Accept": 'application/json'
}
}).then(response => {response.json()
console.log(response)})
.then(res => {
let listResults = [];
for (let i in res) {
listResults.push(res[i]["total"])
}
setData(listResults);
}).catch(function (error) {
console.log(error);
});
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)