2016-07-11 98 views
0

我嘗試在node.js中創建一個http代理,它獲取請求並向服務器發出新的請求。我的目的是擺脫一段時間的交叉來源問題並測試我的應用程序。 但我m到處例外:Node.js中的http代理

 _stream_readable.js:536 
    var ret = dest.write(chunk); 
    dest.write is not a function 

我M在Node.js的完全的新手,所以我在正確的道路上?還是有更好的方法來做到這一點?

app.get('/tlq', (req, res) => { 
    console.log('serve: ' + req.url); 
    var options = { 
    hostname: 'www.google.com', 
    port: 80, 
    path: req.url, 
    method: 'GET' 
    }; 
    var proxy = http.request(options, function (res) { 
    res.pipe(res, { 
     end: true 
    }); 
    }); 

    req.pipe(proxy, { 
    end: true 
    }); 
}); 

回答

1

要擺脫交叉錯誤,您必須發送訪問控制標題(在任何數據發送到客戶端之前)。爲此,您可以使用下一個中間件:

app.use(function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    next(); 
});