我在客户端使用ajax帖子将用户详细信息发布到数据库。在服务器端,我处理我的帖子请求:
app.post("/journey",function(req,res){
var obj = JSON.stringify(req.body);
var dt = JSON.parse(obj);
//console.log(dt.zip)
var journey_details = new Journey({
zip : dt.zip,
age65 : dt.age65,
first_name : dt.fname,
last_name : dt.lname
});
journey_details.save(function (err) {
if (err) {
return err;
}
else {
console.log("Journey details saved");
// i use some api here to get json data named parsedData
//since i've to display the name and parsedData on a new page, i send the data to front end javascript as
res.send({redirect: '/profile', first_name : dt.fname, last_name : dt.lname, parsedData : parsedData});
});
});
由于我使用ajax帖子,我重定向ajax成功。获得上述数据后,我使用
将其重定向到新的配置文件ejs页面 var final_url = "http://localhost:3000" + data.redirect +"/"+data.first_name + "/" + data.last_name;
window.location.replace(final_url);
将它们重定向到localhost:3000 / profile / fname / lname或者可能是我可以在url中使用一些唯一的id或类似的东西 它在我的个人资料ejs页面中处理
但我也想将parsedData发送到我的个人资料ejs页面。以来。 parsedData有多个带有很多字段的json对象,我不认为我可以通过url发送它:
var final_url = "http://localhost:3000" + data.redirect +"/"+data.first_name + "/" + data.last_name + "/"+data.parsedData;
window.location.replace(final_url);
有没有办法让我扫描发送它而不是在urlheader中,这样我可以像访问下面的fname和lname一样轻松访问parsedData:
app.get("/profile/:firstname/:lastname",function(req,res){
console.log(req.params.firstname);
res.render("profile", {firstname : req.params.firstname,lastname : req.params.lastname}) // i want parsedData here
});
答案 0 :(得分:0)
GET HTTP请求不适用于大url数据,但在这种情况下使用POST请求是逻辑错误。也许对你来说最好的方法是只传递你的journey_details.id来重定向网址,而不需要任何数据。在服务器端,您将获得此记录并使用您需要的所有数据。