Azure网站node.js http请求失败

我正在尝试使用node.js和git部署的免费Azure网站层。 这是非常光滑的,但我想在我的处理程序中的一个Web服务调用Facebook,并且失败,500内部服务器错误和以下堆栈跟踪:

Application has thrown an uncaught exception and is terminated: Error: connect EADDRNOTAVAIL at errnoException (net.js:670:11) at connect (net.js:548:19) at Socket.connect (net.js:613:5) at Object.<anonymous> (net.js:77:12) at new ClientRequest (http.js:1091:25) at Object.request (http.js:1427:10) at Object.get (http.js:1432:21) 

代码在本地运行时工作正常。 这是Azure网站的限制,还是有一些其他的方式来使这项工作? 我的代码看起来像这样(我使用快递):

 app.get('/login', function (req, res) { var tokenUrl = 'http://foo.com'; var body = ''; http.get(tokenUrl, function (tokenRes) { tokenRes.on('data', function (chunk) { body += chunk; }).on('end', function () { res.end(body); }); }).on('error', function (err) { console.log('Error fetching site: ' + err.message); }); } 

所以我有这个完全相同的问题,但调用https.get()。 从https.get()切换到https.request()解决了我的问题。 这似乎有点疯狂,因为http.get()在本地工作良好。 我很害怕知道这里发生了什么:(

是的,我也遇到了这个问题。 @Steven lckman的回答对我不起作用。


嗨,@Alec Siu,我解决了这个问题。 Azurebuild议使用请求模块发出http请求。 看到这里 。 但是没有给出理由。 无论如何,它运作良好。