2017-01-24 21 views
1

我是Rest API和Angularjs的新手。我试图在用户界面上显示一条警告消息,以显示我的表格编辑是否成功。我想知道我们怎么能把Rest api控制器的警报发送到angularjs? 请举例吗? 感谢如何显示来自REST API控制器的错误消息以显示在Angularjs UI上?

例如我试图使用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控制器

@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; 

    } 

返回消息张贴的东西; }

+0

你可以在你的API,而不是使用返回错误信息'void' –

+0

发[ResponseEntity(http://docs.spring.io/spring-framework/ docs/current/javadoc-api/org/springframework/http/ResponseEntity.html)与[HttpStatus](http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/ http/HttpStatus.html)[BAD_REQUEST](http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/http/HttpStatus.html#BAD_REQUEST)和一条消息。 – georgeawg

回答

0

也许你可以返回一个JSON对象与ErrorStatus中,然后就可以显示错误消息,

$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); 
     }); 
     }; 
+0

嗨,如果我的REST API控制器返回一个字符串消息。我应该怎么做?就像我上面编辑我的问题一样。谢谢 – RLe

+0

把错误信息放在那里并显示数据。您可能必须硬编码并检查字符串是否存在错误 – Sajeetharan

0

使用REST完整API控制器是在服务器端返回值应该是错误或成功与响应(json格式)。 200是成功的代码,应该将其作为状态以及来自服务器的响应返回。

在角度上,你的成功块并不是要处理错误。只有当200是'OK'(表示成功)才会落入你的成功块,所有其他状态将落入错误块。

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

+0

将响应状态码介于200和299之间视为成功状态,并且会导致调用成功回调。任何超出该范围的响应状态代码都被认为是错误状态,并会导致调用错误回调。有关更多信息,请参阅[AngularJS $ http服务API参考 - 常规用法](https://docs.angularjs.org/api/ng/service/$http#general-usage)。 – georgeawg