function registrationSave(data){
return $http({
method: 'POST',
url: 'registration/save',
data: data
}).then(function(response){
console.log("@@@1 "+JSON.stringify(response));
},function(error){
console.log("@@@2"+JSON.stringify(error));
return error.data;
}).catch(function (data) {
// Handle error here
});
};
如果出现错误,这是服务的服务器响应
//服务器响应
{
"code": 400,
"message": "Failled with registration Id 1,341.",
"result": "False"
}
如果出现400错误,客户端代码响应未定义?它永远不会在客户端代码中出现错误部分。
为什么会这样?
这是使用的拦截器
/**
* To handle error response.
*/
function responseError(error) {
if (error.status === 401 || error.status === 403) {
if(error.data != null && error.data.code === 401 ){ //access denied error
toaster.error( 'Access denied', 'User does not have privilege');
}
}
}
如果是400,我可以返回这里的方法吗?
答案 0 :(得分:1)
如果HTTP状态代码在200和299之间,则调用$http的成功函数,否则调用错误函数。从服务器返回的HTTP状态代码似乎是200,而消息正文中的code
字段是400.在成功函数中没有return
所以你看到的是未定义的。如果您在浏览器控制台中观察@@@ 1,则可以验证是否发生了这种情况。在浏览器的开发人员工具网络选项卡中,您还可以查看HTTP状态代码并验证它是否介于200和299之间。