在表达如何将用户重定向到外部URL?

时间:2015-02-05 19:56:33

标签: node.js express routes

我有一个使用node.js和braintree的支付系统,当付款成功时,我想将用户发送到后端。我的后端设置在其他地方。

我试过了

res.writeHead(301,
  {Location: 'http://app.example.io'}
);
res.end();

所以window.location显然不可用。我想不出任何重定向用户的方法吗?

6 个答案:

答案 0 :(得分:72)

你可以做到

res.redirect('https://app.example.io');

快递文档:https://expressjs.com/en/api.html#res.redirect

答案 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,但实际上哪个站点不使用它。