NodeJs で AngularJs を使用しています。
HTTP POST リクエストが成功したときに、ユーザーをリダイレクトする必要があるシナリオがあります。
クライアントで AngularJS を介して、ルートに HTTP POST リクエストを送信します。
$http.post('/aPath', data)
.success(function (result) {
//Handle success
})
.error(function (err) {
//Handle error
});
このルートは、実際の POST を実行する NodeJ 内で処理されます。成功すると、ルート ハンドラー内で次のようにリダイレクトします。
function handlePostRequest (req, res) {
//Route handler
//HTTP POST Request
//Following code called when POST request is successful
if (result) {
//Successful post
res.redirect("http://www.google.com");
}
}
ただし、ブラウザは Google に移動しません。代わりに、AngularJS クライアント内の POST リクエストのエラー ハンドラで、コントロールに到達します。
サーバーを確認したところ、POST リクエストがステータス コード 302 として返され、クライアントの POST リクエストのエラー ハンドラによって選択されていることがわかりました。
サーバーがリダイレクトコードを正常に実行したときに、コントロールがまだクライアントに到達し、それもエラーハンドラーに到達する理由がわかりません。正常にリダイレクトするにはどうすればよいですか?