Per evitare problemi con lo stesso dominio AJAX, desidero che il mio server web node.js inoltri tutte le richieste dall'URL /api/BLABLAa un altro server, ad esempio other_domain.com:3000/BLABLA, e ritorni all'utente la stessa cosa che questo server remoto ha restituito, in modo trasparente.
Tutti gli altri URL (accanto /api/*) devono essere offerti direttamente, senza proxy.
Come posso ottenere questo risultato con node.js + express.js? Puoi fare un semplice esempio di codice?
(sia il server Web che il 3000server remoto sono sotto il mio controllo, entrambi eseguono node.js con express.js)
Finora ho trovato questo https://github.com/http-party/node-http-proxy , ma leggere la documentazione non mi ha reso più saggio. Ho finito con
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
});
});
ma nulla viene restituito al server Web originale (o all'utente finale), quindi nessuna fortuna.