最佳答案
为了避免同域AJAX问题,我希望我的node.js web服务器将所有来自URL /api/BLABLA
的请求转发到另一个服务器,例如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服务器(或最终用户),所以运气不好。