簡體   English   中英

node.js將數據從ajax重定向到ejs

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM