如何从REST API控制器显示错误消息以在Angularjs UI上显示?

时间:2017-01-24 00:52:22

标签: javascript angularjs spring rest spring-mvc

我是Rest API和Angularjs的新手。我试图在UI上显示警告消息,以显示我的表的编辑是否成功。我想知道怎样才能将Rest api控制器的警报发送给angularjs? 好吗? 感谢

例如我试图使用angularjs http

发布内容
$scope.savePlan = function (plan,code) {
        $http({
          method : 'POST',
          contentType: 'application/json',
          url : restUrl + "plans/update/"+ plan,
          data: code
        }).success(function(data) {
          console.log('POST: ' + data);
        }).error(function(data) {
          console.log('POST ERROR: ' +data);
        });
      };

Rest api controller

@RequestMapping(value = "/update/{plan}", consumes = MediaType
      .APPLICATION_JSON,
      method = RequestMethod.POST)
  public String savePlan(@PathVariable("plan") String plan,
                       @RequestBody String code) throws Exception {
String message="";
    if (code== null || code.trim().length() == 0 ||
        plan== null || plan.trim().length() == 0)
    {
    //instead of logger.error i want to send that error message to display on the UI
      message = "Plan details and type must be provided." +null;

    }

返回消息; }

2 个答案:

答案 0 :(得分:0)

可能你可以使用errorStatus返回一个JSON对象,然后你可以显示错误信息,

$scope.savePlan = function (plan,code) {
        $http({
          method : 'POST',
          contentType: 'application/json',
          url : restUrl + "plans/update/"+ plan,
          data: code
        }).success(function(data) {
           if(data.ErrorMsg)
           {
               //display data.ErrorMsg
           }
           else
           {
               //successfully posted
           }
        }).error(function(data) {
          console.log('POST ERROR: ' +data);
        });
      };

答案 1 :(得分:0)

使用rest full api你的服务器端控制器应该返回错误或成功响应(json格式)。 200是成功代码,应该作为状态以及来自服务器的响应返回。

在角度中,您的成功块不是为了处理错误。只有当'OK'(表示成功)的200将落入您的成功块时,所有其他状态才会出现在错误块中。

对于错误弹出,您可以使用bootbox