【发布时间】:2020-11-09 07:48:03
【问题描述】:
我创建了一个非 JWT api 调用并且它可以工作。我添加 JWT verifyToken 的那一刻它可以工作,但我似乎无法从 AXIOS POST 获取返回结果集。
Function 2 --> /userget ----is working 我可以在 HTML 上显示结果
Function 7 ---> /api/userget ---它可以获取数据和令牌,但我无法在 HTML 上显示,它转到“错误响应”
++++++++++++++++++++++++++++++++++
function myFunction2() {
console.log("Going2");
var userid = document.getElementById("userid").value;
console.log(userid);
axios( {
method: 'post',
url:'http://localhost:8081/userget',
data : {
userid : userid
}
})
.then(function (response) {
console.log(response.data.result[0].username );
var userid = JSON.stringify(response.data.result[0].userid);
var username = JSON.stringify(response.data.result[0].username);
var email = JSON.stringify(response.data.result[0].email);
var userid = JSON.parse(userid);
var username = JSON.parse(username);
var email = JSON.parse(email);
var displaydata = ("User ID : " + userid + "<br><br>Name : " + username + "<br><br>Email :" + email);
document.getElementById("demo").innerHTML = displaydata;
})
.catch(function (error) {
document.getElementById("demo").innerHTML = "Bad response";
});
}
++++++++++++++++++++++++++++++++++++
function myFunction7() {
console.log("Going7");
var userid = document.getElementById("userid").value;
console.log(userid);
console.log("Print local token == " + localStorage.getItem("token"));
var msgtxt = localStorage.getItem("token");
axios( {
method: 'post',
url:'http://localhost:8081/api/userget',
headers: {
'Authorization': `Bearer ${msgtxt}`
},
data : {
userid : userid
}
})
.then(function (response) {
console.log(response.data.result[0].username );
var userid = JSON.stringify(response.data.result[0].userid);
var username = JSON.stringify(response.data.result[0].username);
var email = JSON.stringify(response.data.result[0].email);
var userid = JSON.parse(userid);
var username = JSON.parse(username);
var email = JSON.parse(email);
var displaydata = ("User ID : " + userid + "<br><br>Name : " + username + "<br><br>Email :" + email);
document.getElementById("demo").innerHTML = displaydata;
})
.catch(function (error) {
document.getElementById("demo").innerHTML = "Bad response";
});
}
++++++++++++++++++++++++++++++++
app.post('/userget', function (req, res) {
const userid = req.body.userid;
console.log ("User id == " + userid)
user.getUser(userid, function (err, result) {
if (!err) {
console.log(result)
res.send({result})
} else{
res.send(err.errno + " No record");
}
res.end()
});
});
++++++++++++++++++++++++
app.post('/api/userget', verifyToken, (req, res) => {
const userid = req.body.userid;
console.log ("User id == " + userid)
jwt.verify(req.token, secretKey, (err, authData) => {
if(err) {
res.sendStatus(403);
} else {
user.getUser(userid, function (err, result) {
if (!err) {
console.log(result)
res.send({result})
} else{
res.send(err.errno + " No record");
}
res.end()
});
res.json({
message: 'Post created...',
authData : authData
});
}
});
});
终端错误 /home/ronaldtan/Programming/webservices/node_modules/mysql/lib/protocol/Parser.js:437 抛出错误; // 重新抛出非 MySQL 错误 ^
错误:发送后无法设置标头。 在 validateHeader (_http_outgoing.js:491:11) 在 ServerResponse.setHeader (_http_outgoing.js:498:3) 在 ServerResponse.header (/home/ronaldtan/Programming/webservices/node_modules/express/lib/response.js:771:10) 在 ServerResponse.send (/home/ronaldtan/Programming/webservices/node_modules/express/lib/response.js:170:12) 在 ServerResponse.json (/home/ronaldtan/Programming/webservices/node_modules/express/lib/response.js:267:15) 在 ServerResponse.send (/home/ronaldtan/Programming/webservices/node_modules/express/lib/response.js:158:21) 在/home/ronaldtan/Programming/webservices/controller/app.js:170:17 在查询。 (/home/ronaldtan/Programming/webservices/model/user.js:44:32) 在查询。 (/home/ronaldtan/Programming/webservices/node_modules/mysql/lib/Connection.js:526:10) 在 Query._callback (/home/ronaldtan/Programming/webservices/node_modules/mysql/lib/Connection.js:488:16)
【问题讨论】:
-
控制台出现错误。
标签: javascript node.js json axios jwt