gpt4 book ai didi

javascript - res.render 以字符串格式发送回数据

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:16 24 4
gpt4 key购买 nike

我正在使用 Node、Express 和 Mongoose 开发一个应用程序。在我的登录模块中,res.render() 函数将代码作为字符串格式数据发送回客户端 ajax 调用。而我希望它呈现特定的 View 。 ajax调用是post类型调用。我可以在ajax的成功字段中看到字符串格式的整个HTML。

我确实搜索过类似的问题和解决方案,但没有找到。让我知道我做错了什么。

客户端:

 $.ajax({
type: 'POST',
url: '/login',
data: userDetail,
success: function(data){
console.log(data);
},
error: function(err){
$("p").text("Invalid User Details")
}
});

服务器端:

app.post('/login', urlencodedParser ,function(req,res){
console.log(req.body);
User.find({name : req.body.name , password : req.body.pass},function(err,data){
if (data.length != 0){
Todo.find({},function(err,todo){
if (err) throw err;
var token = jwt.sign(req.body,config.secret,{
expiresIn : '1h'
});
res.render('todo',{
todos : todo,
token : token
});
});
}
else
res.status(401).json({ msg : "Invalid User" });
});
});

最佳答案

Ajax 调用本身不会更改浏览器中显示的内容。他们只是获取数据,然后你的 JavaScript 代码决定如何处理这些数据。无论 Ajax 调用是什么类型,GET、POST 等,都是如此...

如果您想更改当前页面以显示使用 Ajax 获取的内容,那么您必须自己将该内容插入到当前页面中。

或者,在 POST 的情况下,您可能想要提交一个 HTML 表单,然后浏览器将为您呈现从该表单帖子返回的内容,但 ajax post 根本不会更改浏览器显示的内容。

提交 HTML 表单可以通过 Javascript 或 native 用户操作(无需任何 Javascript)来完成。但是,为了让浏览器为您处理结果,必须是浏览器提交表单,而不是发送表单的 ajax 调用。如果 Ajax 调用发送表单(如您显示的代码中所示),那么结果将返回到您的 Javascript,并由您的 Javascript 决定如何处理该结果(将其插入页面等)。

关于javascript - res.render 以字符串格式发送回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46660497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com