给定对 URL X 的 GET 请求,您应该如何定义 res.send 以便它提供对完全独立的 URL Y 的响应?
IE
app.get('/', function (req, res) {
res.send to a new URL external of the app ('Success')
});
Run Code Online (Sandbox Code Playgroud)
提前感谢并道歉对这个话题的无知!
小智 10
您希望通过设置状态代码并提供位置标头来重定向请求。302表示临时重定向,301表示永久重定向。
app.get('/', function (req, res) {
res.statusCode = 302;
res.setHeader("Location", "http://www.url.com/page");
res.end();
});
Run Code Online (Sandbox Code Playgroud)
您只能将响应发送到请求源,即客户端。不存在向另一个“external-url”(或另一个服务器)发送响应的情况。
但是,您可以向另一台服务器发出请求,等待其响应,然后响应我们的客户端。
app.get('/', (req, res) => {
var requestOptions = {
hostname: 'serverB.com', // url or ip address
port: 8080, // default to 80 if not provided
path: '/take-request',
method: 'POST' // HTTP Method
};
var externalRequest = http.request(requestOptions, (externalResponse) => {
// ServerB done responding
externalResponse.on('end', () => {
// Response to client
res.end('data was send to serverB');
});
});
// Free to send anthing to serverB
externalRequest.write(req.data);
externalRequest.end();
});
Run Code Online (Sandbox Code Playgroud)