为了避免同域 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 服务器(或最终用户),所以没有运气。