2017-03-31 15 views
0

私はクライアント側でajax投稿を使用して、データベースにユーザーの詳細を投稿しています。サーバー側では、次のように投稿リクエストを処理します。nodejsがajaxからejsにデータをリダイレクト

 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の成功にリダイレクトします。 3000 /プロフィール/ fnameに/ LNAMEや私のようないくつかのユニークなIDまたは何かを使用することができますことがあります私は上記のデータを取得したら、私は彼らがlocalhostにリダイレクトします

var final_url = "http://localhost:3000" + data.redirect +"/"+data.first_name + "/" + data.last_name; 
    window.location.replace(final_url); 

を使用して新しいプロファイルEJSページにリダイレクトそれはURL で、私のプロフィールのejsページで処理されます

しかし、私はまた、私のプロフィールのejsページにparsedDataを送信したいと思います。以来。私がアクセスできるように、そのようurlheaderのように、他のよりも、それを送ってスキャンするようにどのような方法があります

var final_url = "http://localhost:3000" + data.redirect +"/"+data.first_name + "/" + data.last_name + "/"+data.parsedData; 
    window.location.replace(final_url); 

:parsedDataは、多くのフィールドを持つ複数のJSONオブジェクトを持って、私は私のようにURLを介してそれを送ることができるとは思いませんように簡単に私は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

GET HTTP要求は、大きなURLデータのために意図されていないが、この場合にはPOSTリクエストを使用して、論理的なエラーです。たぶんあなたのための最良の方法は、あなたのjourney_details.idだけをURLなしでリダイレクトすることです。サーバー側では、このレコードを取得し、必要なすべてのデータを使用します。

関連する問題