我有一个使用node.js和braintree的支付系统,当付款成功时,我想将用户发送到后端。我的后端设置在其他地方。
我试过了
res.writeHead(301,
{Location: 'http://app.example.io'}
);
res.end();
所以window.location显然不可用。我想不出任何重定向用户的方法吗?
答案 0 :(得分:72)
答案 1 :(得分:7)
所选答案对我不起作用。它将我重定向到:locahost:8080/www.google.com
- 这是无稽之谈。
301 Moved Permanently需要包含在res.status(301)
中,如下所示。
app.get("/where", (req, res) => {
res.status(301).redirect("https://www.google.com")
})
由于你的后端在其他地方,你处于相同的情况。
答案 2 :(得分:2)
我只是有同样的问题,并通过添加" next"来实现它。我使用路由器,所以也许你和我一样有问题?没有下一个,我得到关于没有渲染引擎的错误......很奇怪
var express = require('express');
var router = express.Router();
var debug = require('debug')('node_blog:server');
/* GET home page. */
router.get('/', function(req, res, next) {
debug("index debug");
res.render('index.html', { title: 'Express' });
});
router.post("/", function (req, res, next) {
//var pass = req.body("password");
//var loginx = req.body("login");
//res.render('index.html', { title: 'Express' });
res.redirect("/users")
next
});
module.exports = router;
答案 3 :(得分:1)
app.get("/where", (req, res) => {
res.status(301).redirect("https://www.google.com")
})
您需要包含状态(301)
答案 4 :(得分:0)
将用户重定向到外部URL非常简单。
res.redirect('enter the URL here');
答案 5 :(得分:-1)
这些都不适合我,因此我欺骗了接收方客户端,结果如下:
res.status(200).send('<script>window.location.href="https://your external ref"</script>');
有人会说是否没有noscript,但实际上哪个站点不使用它。