0

認証するために、次のように backbone.js からサーバーにポスト リクエストを送信しました。

model.save({"email":"sil@gmail.com","password":"silvester"}, {
   successs:function(model,res){

   },
   error:function(){

   }
});

私はこのようにサーバー側で受け取りました:

app.post('/login', passport.authenticate('local', {
    successRedirect: '/mainpage',
    failureRedirect: '/login'
}));

上記のコーディングで、認証が成功した場合、メインページにリダイレクトしてから、次のような別の html ページを表示しようとしました:

app.get('/mainpage',function(req,res) {
    console.log("mainpage");
    res.sendfile('/mainpage.html');
});

そのメインページをリダイレクトした後、そのコンソールの結果が得られましたが、別の Web ページにリダイレクトできませんでした。それを解決する方法と、とにかくその投稿リクエストに対してのみ応答を送信する方法があります(上記の投稿リクエスト)。その投稿リクエストに応答を送信すると、成功関数内でその応答を簡単に受け取ることができ、作業を進めることができますが、パスポートにはリダイレクトオプションしかないため、別の取得リクエストに移動します。これからフロントエンドに応答を送信するにはどうすればよいですか? どこで受信できますか?.だから、リダイレクトなしで応答を送信する方法と、これを解決する方法は?

4

2 に答える 2

0

model.saveサーバーに ajax リクエストを送信します。

res.sendfile('/mainpage.html');すると、ajax応答でhtmlページが返されると思います。ブラウザで開発者コンソールを確認できますか?

リクエストが ajax の場合は、401http ステータス コードを返し、クライアント側でリダイレクトを行うことを確認する必要があります。window.location="/mainpage.html"

于 2013-03-09T07:16:05.717 に答える