我在使用node.js和node-http-proxy模块时遇到了问题。 在某些网页上,未加载资源,因为服务器会将请求重定向到原始html文件。因此,对于每个图片或css文件,都会再次加载index.html文件。奇怪的是,这不会发生在所有网站上,只会发生在某些网站上。 这是我的代码:
var express = require('express'),
httpProxy = require('http-proxy'),
var router = express.Router();
var proxy = new httpProxy.createProxyServer();
router.get('/:url', function(req, res) {
var options = {
target: {
host: req.params.url,
port: 80,
path: 'http://'
},
timeout: 5000,
proxyTimeout: 5000,
xfwd: true,
prependPath: true
};
proxy.web(req, res, options);
});
这不起作用的网页示例http://www.kicker.de 我已经尝试了几个选项,比如hostRewrite或changeOrigin,但那些似乎没有改变它。
答案 0 :(得分:0)
我强烈建议您使用npm模块request
。我在使用重定向通过http和https获取文件的其他方法时遇到问题。 request
处理得很好。以下是我获取内容的一些代码。
var request = require("request");
...
function fetchImage(url, callback) {
var file, tmpFile;
async.waterfall([
function (next) {
tmp.file(next);
},
function (location, descriptior, cleanupCallback, next) {
console.log(location);
tmpFile = location + ".png"
console.log("fetching", url, "and saving it as", tmpFile);
var download = request(url).pipe(fs.createWriteStream(tmpFile));
download.on("finish", function(){
console.log("finished downloading picture", tmpFile);
fs.stat(tmpFile, next)
});
}
], callback);
}