我正在使用 AngularJs 和 NodeJs。
我有一个场景,当 HTTP POST 请求成功时,我需要重定向用户。
在通过 AngularJS 的客户端中,我向路由发出 HTTP POST 请求:
$http.post('/aPath', data)
.success(function (result) {
//Handle success
})
.error(function (err) {
//Handle error
});
该路由在 NodeJs 中处理,然后执行实际的 POST。成功后,在路由处理程序中,我重定向:
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");
}
}
但是,浏览器不会导航到谷歌。相反,在 AngularJS 客户端内的 POST 请求的错误处理程序中,可以达到控制。
我检查了服务器,发现 POST 请求作为状态代码 302 返回,因此被客户端中 POST 请求的错误处理程序选择。
我不知道为什么,当服务器成功执行重定向代码时,控件仍然到达客户端,错误处理程序也是如此。如何成功重定向?