ajax – 如何在Angular中捕获http错误响应
发布时间:2020-12-15 22:52:51 所属栏目:百科 来源:网络整理
导读:背景 我的Angular应用程序通过一组API端点与数据库通信. “user / authenticate”端点接受用户名和密码,并返回成功(200)或错误请求(400)http响应. 调节器 authService.login(email,password) .success(function (response) { /* go to application */ }) .er
背景
>我的Angular应用程序通过一组API端点与数据库通信. 调节器 authService.login(email,password) .success(function (response) { /* go to application */ }) .error(function (response) { /* display proper error message */ }); 身份验证服务 factory.login = function(email,password) { return $http({ method: 'POST',url: "http://myserver/user/authenticate",data: $.param({email: email,password: password}),headers: {'Content-Type': 'application/x-www-form-urlencoded'} }); } 问题 当用户名和密码失败并且API返回400响应时,即使我正在捕获错误并且我向用户显示正确的消息,该错误也会出现在浏览器控制台中. POST http://myserver/user/authenticate 400 (Bad Request) 我能以更好的方式处理错误吗? 解决方法
试试这个
factory.login = function(email,headers: {'Content-Type': 'application/x-www-form-urlencoded'} }).then(function (response) { /**Check here your status code 400 if you found that status code is 400 the reject the promise**/ if (statuscode !==400) { return response.data; } else { // invalid response return $q.reject(response.data); } },function (response) { // something went wrong return $q.reject(response); }); } 然后使用以下代码 authService.login(email,password) .then(function (response) { /* go to application */ },function(error) { console.log(error); /* catch 400 Error here */ }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |