如何处理服务器关闭请求(AngularJS)

时间:2016-04-05 07:33:52

标签: angularjs web

我正在使用AngularJS向TOMCAT服务器发出POST请求。下面是该代码的片段。

$http(<myRequest>).then(function(response) {
            $scope.info = response.data;
        }, function(response) {
            $scope.error = response.data
        });

只要服务器启动并运行,这就可以正常工作。如果响应有任何错误,它会使用错误消息填充$scope.error变量。但是,如果服务器关闭,当我单击发出此请求的链接时,页面上不会显示任何内容,我只能在浏览器的控制台上看到错误。

如何在页面上显示此错误?我想以某种方式通知用户服务器已关闭。

1 个答案:

答案 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属性可能会有所帮助:)