我正在使用AngularJS向TOMCAT服务器发出POST请求。下面是该代码的片段。
$http(<myRequest>).then(function(response) {
$scope.info = response.data;
}, function(response) {
$scope.error = response.data
});
只要服务器启动并运行,这就可以正常工作。如果响应有任何错误,它会使用错误消息填充$scope.error
变量。但是,如果服务器关闭,当我单击发出此请求的链接时,页面上不会显示任何内容,我只能在浏览器的控制台上看到错误。
如何在页面上显示此错误?我想以某种方式通知用户服务器已关闭。
答案 0 :(得分:1)
关于docs:
200到299之间的响应状态代码被视为成功状态,将导致调用成功回调。
也就是说,如果调用了错误处理程序,则可以检查响应对象的status
属性。 400或500范围内的值表示会阻止服务器处理您的请求的问题。如果您自己配置服务器,则可以编写自己的错误代码并将其解释为客户端。
$http(<myRequest>).then(function success (response) {
$scope.info = response.data;
}, function error (response) {
if (response.status === <server is down http status>) {
//do something here
$scope.error = "server is down msg";
}
else {
$scope.error = response.data;
}
});
我尝试将数据发布到不存在的服务器上,该服务器为我提供了状态代码-1
。如果您的服务器确实关闭,您可能需要检查此值。
编辑:您的回复中还有一个statusText
属性可能会有所帮助:)