Javascript 使用express发送html页面作为对axios调用的响应
我正在打axios电话检查现有JWT令牌。如果它存在,我想呈现我的管理面板,否则重定向到登录页面。 现在我的后端是这样的:Javascript 使用express发送html页面作为对axios调用的响应,javascript,node.js,express,axios,Javascript,Node.js,Express,Axios,我正在打axios电话检查现有JWT令牌。如果它存在,我想呈现我的管理面板,否则重定向到登录页面。 现在我的后端是这样的: //The admin panel page. check for valid JWT token, otherwise prompt to login page router.use("/", (req,res)=>{ var token = req.headers.authorization; if (token && token.st
//The admin panel page. check for valid JWT token, otherwise prompt to login page
router.use("/", (req,res)=>{
var token = req.headers.authorization;
if (token && token.startsWith("Bearer ")) {
// Remove Bearer from string
token = token.slice(7, token.length);
}
if (token) {
jwt.verify(token, "secret", (err, decoded) => {
if (err) {
res.sendFile(path.join(__dirname , '../views/login.html'));
} else {
User.findOne({
_id: decoded.id
}).then(function (user) {
res.sendFile(path.join(__dirname , '../views/admin.html'));
})
}
});
} else {
res.sendFile(path.join(__dirname , '../views/login.html'));
}
});
这很好,但在我的前端,我在axios中得到的结果是作为一个对象,页面没有显示,但响应存储在内存中
Object { data: "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n
我发送的整个html文档都在响应的数据字段中
您可以通过使用或选择将DOM封装在更简单的API中的库来实现这一点。例如,document.write(response.data)
将执行此操作,因为在对页面进行主解析之后,document.write
执行隐式文档。open
将清除页面并用字符串替换它
也就是说,如果你想发布一篇文章并用生成的完整HTML替换页面,你可能只需要一个标准的
表单
元素,因为这是他们的默认行为。我知道,问题是如何在当前页面中加载HTML代码数据?@KristijanStefanoski-我已经替换了答案。
function onPage(){
if(localStorage.getItem('token')){
const Url = "http://127.0.0.1:8000/admin/";
const config = {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Authorization": "Bearer " + localStorage.getItem('token')
}
};
axios.post(Url, {}, config).then(function (response) {
console.log(response);
})
.catch(error => {});
}
}