[英]AngularJS - How do I capture JSON returned from a GET service method regardless of http status returned
I have an AngularJS app that I want to alert or capture the message of the following two returned JSON values, either on success or failure. 我有一个AngularJS应用,我想在成功或失败时向以下两个返回的JSON值发出警报或捕获消息。
Two problems occur. 发生两个问题。 On status code 500 I can not get the Message value of the returned JSON I get
undefined
when I try to alert msg
. 在状态码500上,我无法获取返回的JSON的Message值,而当我尝试向
msg
发出警报时却无法undefined
。 On success I can not parse the JSON either. 成功后,我也无法解析JSON。
Message in Network console 网络控制台中的消息
GET inviteUsers 500 Internal Server Error
{"Message":"Users are not available"}
What do I need to do to make this work? 我需要做些什么才能使这项工作?
JSON on failure - returns status code 500 失败时返回JSON-返回状态码500
{"Message":"Users are not available"}
JSON on success JSON成功
{"Message": "Invitations sent successfully"}
Controller Method 控制器方式
$scope.inviteUsers = function(){
var msg = JSON.parse(createNewUserService.inviteUsers().query()["Message"]);
}
Service Method (Method GET) 服务方法(方法GET)
var _inviteUsers = function(){
return $resource(serviceBase + 'inviteUsers',
{
});
};
In fail condition you can access your message in error callback function 在失败情况下,您可以在错误回调函数中访问消息
var msg;
var inviteUsers = createNewUserService.inviteUsers().query();
inviteUsers.$promise.then(function(data) {
// success handler
msg = JSON.parse(data)["Message"];
}, function(error) {
// error handler
msg = JSON.parse(error)["Message"];
});
The following helped achieve the desired result. 以下内容有助于达到预期效果。 The key was to use angularjs promises.
关键是使用angularjs promises。
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);
});
}
You're getting the Message
property wrong. 您将
Message
属性弄错了。
So update this: 因此更新此:
var msg = JSON.parse(createNewUserService.inviteUsers().query()["Message"]);
to: 至:
var msg = JSON.parse(createNewUserService.inviteUsers().query()).Message;
Update: 更新:
Regarding fail conditions, we should check it first if there's a response or the response is valid. 关于失败条件,我们应该首先检查它是否存在响应或响应是否有效。
var msg = "Users are not available";
var resp = createNewUserService.inviteUsers().query();
if(resp)
msg = JSON.parse(resp).Message;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.