问题在标题行中应该非常明确。我有一个节点js REST api服务器由客户端AngularJS应用程序调用。
端口
服务器端在端口3000上运行:代码很简单:
app.get('/', function ( req, res ) {
res.sendStatus( string );
})
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log( 'Example app listening at http://%s:%s', host, port );
});
客户端正在端口8080上运行:http调用如下所示:
var serverURL = "http://localhost:3000";
$http({
url: serverURL,
method:"GET",
dataType: 'json'
}).then( function ( data ) {
$scope.message = data.data;
}, function ( error ) {
console.error( error );
});
真实问题
当我在本地运行它时,它可以正常使用上面的代码。但是,当我尝试将服务器端代码放在具有IP地址x.x.x.x的云服务器上时,我似乎无法连接。我对代码所做的更改是显而易见的。
客户端:
var serverURL = "http://x.x.x.x:3000";
服务器端:
var server = app.listen(3000, 'x.x.x.x', function () { ... }
错误看起来像你想的那样:
GET: http://x.x.x.x:3000/ net::ERR_CONNECTION_TIMED_OUT
我不知道发生了什么事。我不认为它的超时窗口太小,因为它在20秒后失败了。我可以猜测我可能需要从随机客户端调用服务器端代码的权限,但我在这里黑暗中拍摄。任何帮助将不胜感激