[英]nodejs redirecting data from ajax to ejs
我在客戶端使用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
});
GET HTTP請求不適用於大的url數據,但是在這種情況下使用POST請求是邏輯錯誤。 也許對您來說最好的方法是僅傳遞您的trip_details.id來重定向url,而無需任何數據。 在服務器端,您將獲得此記錄並使用所需的所有數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.