J'ai un système de paiement utilisant node.js et braintree. Lorsque le paiement aboutit, je souhaite envoyer l'utilisateur au serveur final. Mon dos est installé ailleurs.
J'ai essayé
res.writeHead(301,
{Location: 'http://app.example.io'}
);
res.end();
Donc window.location n'est évidemment pas disponible. Je n'arrive pas à trouver un moyen de rediriger un utilisateur?
Tu peux faire
res.redirect('https://app.example.io');
Documents express: https://expressjs.com/fr/api.html#res.redirect
La réponse choisie ne fonctionnait pas pour moi. Il m'a redirigé vers: locahost:8080/www.google.com
- ce qui est un non-sens.
301 Déplacé de façon permanente doit être inclus avec res.status(301)
comme indiqué ci-dessous.
app.get("/where", (req, res) => {
res.status(301).redirect("https://www.google.com")
})
Vous êtes dans la même situation puisque votre back-end est ailleurs.
J'ai juste le même problème et je l'ai obtenu en ajoutant "suivant". J'utilise des routeurs alors peut-être que vous avez le même problème que le mien? Sans la suite, j'ai eu une erreur sur aucun moteur de rendu ... bizarre
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;
app.get("/where", (req, res) => {
res.status(301).redirect("https://www.google.com")
})
Vous devez inclure le statut (301)