javascript - AngularJS - 无论返回的 http 状态如何,如何捕获从 GET 服务方法返回的 JSON

标签 javascript jquery angularjs json

我有一个 AngularJS 应用程序,我想在成功或失败时提醒或捕获以下两个返回的 JSON 值的消息。

出现两个问题。在状态代码 500 上,我无法获取返回的 JSON 的消息值,当我尝试提醒 msg 时,我得到了 undefined。成功后我也无法解析 JSON。

网络控制台中的消息

GET inviteUsers 500 Internal Server Error

{"Message":"Users are not available"}

我需要做什么才能完成这项工作?

失败时返回 JSON - 返回状态码 500

{"Message":"Users are not available"}

JSON 成功

{"Message": "Invitations sent successfully"}

Controller 方法

$scope.inviteUsers = function(){
  var msg = JSON.parse(createNewUserService.inviteUsers().query()["Message"]);
}

服务方法(Method GET)

var _inviteUsers = function(){

  return $resource(serviceBase + 'inviteUsers',
{
});
};

最佳答案

以下内容有助于实现预期的结果。关键是使用 angularjs promise 。

var msg;
$scope.inviteUsers = function(){
  var inviteUsers = createNewUserService.inviteUsers().query();
  inviteUsers.$promise.then(function(data){
   msg = JSON.parse(data).Message;
   notify(msg);
  },
  function(error){
    msg = "No invitations sent";
    notify(msg);
  });
}

关于javascript - AngularJS - 无论返回的 http 状态如何,如何捕获从 GET 服务方法返回的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41882303/

相关文章:

javascript - 使用 Promise 同步函数调用

javascript - 单击时更改链接背景颜色

java - 如何在javascript函数中传递java变量?

javascript - "$"符号在 jQuery 或 JavaScript 中意味着什么?

jQuery:计算字符串中字符的出现次数

jquery - 在 JQuery/Angular JS 中通过拖放创建嵌套条件

javascript - 滚动时更改导航文本和 Logo 颜色

javascript - JQuery中的战斗系统

javascript - 如何使用 AngularJs 过滤 JSON 数据

javascript - 如何更改 Famo.us + Angular 中元素的 classList?