/api/BLABLA
同じドメインのAJAXの問題を回避するために、たとえば、 node.js WebサーバーがすべてのリクエストをURLから別のサーバーに転送しother_domain.com:3000/BLABLA
、このリモートサーバーが返したものと同じものを透過的にユーザーに返すようにします。
他のすべてのURL(以外/api/*
)は、プロキシなしで直接提供されます。
node.js + express.jsでこれを実現するにはどうすればよいですか?簡単なコード例を教えてください。
(Webサーバーとリモート3000
サーバーの両方が私の制御下にあり、どちらもnode.jsとexpress.jsを実行しています)
これまでのところ、このhttps://github.com/http-party/node-http-proxyを見つけましたが、そこにあるドキュメントを読んでも、私は賢くなりませんでした。私は
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
});
});
ただし、元のWebサーバー(またはエンドユーザー)には何も返されないため、運がありません。