node.js设置http代理

时间:2017-07-30 16:00:33

标签: javascript node.js

我根据Node.js书输入,但无法在IE或Chrome中使用。 任何人都可以检查问题在哪里? 下面是代码:

var http = require("http");
var url = require("url");
var server = http.createServer(function (sreq, sres) {
    var url_parts = url.parse(sreq.url);
    var opts = {
        host: "www.163.com",
        port: 80,
        path: url_parts.pathname,
        headers: sreq.headers
    };
    var creq = http.get(opts, function (cres) {
        sres.writeHead(cres.statusCode, cres.headers);
        cres.pipe(sres);
    });

    sreq.pipe(creq);
});
server.listen(1337, "127.0.0.1", function () {
    console.log("listening" + server.address().port + "......");
});

1 个答案:

答案 0 :(得分:0)

远程服务器<mvc:resources mapping="/photos/**" location="file:///var/lib/tomcat7/photos/ "/> 可能需要设置正确的www.163.com标头。使用您的代码,您可以将浏览器传递的Host标头发送到您的服务器;换句话说,Host(或可能是127.0.0.1:1337)。

尝试将标题更改为目标主机:

localhost:1337