Angularjs 如何在angular中从web api获取错误消息?
如何获取web api在Angular中返回的错误消息 这就是我在《小提琴手》中得到的Angularjs 如何在angular中从web api获取错误消息?,angularjs,asp.net-web-api,Angularjs,Asp.net Web Api,如何获取web api在Angular中返回的错误消息 这就是我在《小提琴手》中得到的 {"Message":"The request is invalid.","ModelState":{"":["Name test1 is already taken."]}} ()'' 我在error函数中做了什么更改,以显示“Name test1已被采用”? 这是一篇文章 $http({ method: 'POST', url: 'ap
{"Message":"The request is invalid.","ModelState":{"":["Name test1 is already taken."]}}
()''
我在error函数中做了什么更改,以显示“Name test1已被采用”?
这是一篇文章
$http({
method: 'POST',
url: 'api/Account/Register',
data: { 'UserName': user.username, 'Password': user.password, 'ConfirmPassword': user.confirmpassword, 'Email': user.email },
})
.success(function () {
toastr.success('successfully registered. ');
})
.error(function (error) {
toastr.error('error:' + error);
});
您从服务器得到的响应非常令人惊讶。它看起来不像一个有效的json字符串。处于模型状态的第一项没有id
{"Message":"The request is invalid.","ModelState":{"":["Name test1 is already taken."]}}
应该是这样的:
{"Message":"The request is invalid.","ModelState":{"message":["Name test1 is already taken."]}}
然后你就可以用
error.ModelState.message[0]
虽然错误响应看起来太复杂,但它应该可以工作。为什么错误消息在数组中?难道不可能像这样简化响应:
{"Message":"The request is invalid.","ModelState":{"message":"Name test1 is already taken."}}
或
或者,如果需要同时返回多条错误消息:
{"Message":"The request is invalid.","ModelState": ["Name test1 is already taken."]}
在最后一个示例中,您可以通过迭代error.ModelStage来访问消息
ModelState[""][0]
这只会给你一个信息这段代码对我有用:
$scope.message = response.statusText + "\r\n";
if (response.data.modelState) {
for (var key in response.data.modelState) {
$scope.message += response.data.modelState[key] + "\r\n";
}
}
if (response.data.exceptionMessage)
$scope.message += response.data.exceptionMessage;
$scope.message = response.statusText + "\r\n";
if (response.data.modelState) {
for (var key in response.data.modelState) {
$scope.message += response.data.modelState[key] + "\r\n";
}
}
if (response.data.exceptionMessage)
$scope.message += response.data.exceptionMessage;