Pour éviter les problèmes AJAX de même domaine, je veux que mon serveur Web node.js transfère toutes les demandes de l'URL /api/BLABLAvers un autre serveur, par exemple other_domain.com:3000/BLABLA, et renvoie à l'utilisateur la même chose que ce serveur distant a renvoyé, de manière transparente.
Toutes les autres URL (à côté /api/*) doivent être servies directement, pas de proxy.
Comment puis-je y parvenir avec node.js + express.js? Pouvez-vous donner un exemple de code simple?
(le serveur Web et le 3000serveur distant sont sous mon contrôle, tous deux exécutant node.js avec express.js)
Jusqu'à présent, j'ai trouvé cela https://github.com/http-party/node-http-proxy , mais la lecture de la documentation ne m'a pas rendu plus sage. J'ai fini avec
var proxy = new httpProxy.RoutingProxy();
app.all("/api/*", function(req, res) {
console.log("old request url " + req.url)
req.url = '/' + req.url.split('/').slice(2).join('/'); // remove the '/api' part
console.log("new request url " + req.url)
proxy.proxyRequest(req, res, {
host: "other_domain.com",
port: 3000
});
});
mais rien n'est retourné au serveur Web d'origine (ou à l'utilisateur final), donc pas de chance.