Angularjs 角度500错误处理不';行不通
我有一个发出post请求并返回数据的服务Angularjs 角度500错误处理不';行不通,angularjs,Angularjs,我有一个发出post请求并返回数据的服务 app.service('flagService', ['$http', function ($http) { this.getData = function (r, c) { return $http.post('http://localhost:8080/api/flag', { row: r, column: c }).then(function (data) { return data; }) } }]); 在控
app.service('flagService', ['$http', function ($http) {
this.getData = function (r, c) {
return $http.post('http://localhost:8080/api/flag', { row: r, column: c }).then(function (data) {
return data;
})
}
}]);
在控制器的某个地方
flagService.getData(row, column).then(function () {
console.log('it works')
})
但api也可以返回500个状态代码。在这种情况下,我在控制台中得到“可能的未处理拒绝…”。现在我想制作一个简单的alert()
,当返回500个错误时,它将打开。我尝试了很多很多解决方案,包括第二个函数,.catch()
,.error()
但我还是不能犯错误。有解决办法吗?谢谢 您可以使用拦截器进行全局错误处理,只要请求被拒绝,就会调用responseError
.factory('myInterceptor', ['$q', '$location', '$injector', function ($q, $location, $injector) {
return {
response: function (response) {
return response || $q.when(response);
},
responseError: function (rejection) {
if (rejection.status === 500) {
console.log('http 500 response')
}
return $q.reject(rejection);
}
}
}])
.config(['$httpProvider', function ($httpProvider) {
$httpProvider.interceptors.push('myInterceptor');
}]);
.factory('myInterceptor', ['$q', '$location', '$injector', function ($q, $location, $injector) {
return {
response: function (response) {
return response || $q.when(response);
},
responseError: function (rejection) {
if (rejection.status === 500) {
console.log('http 500 response')
}
return $q.reject(rejection);
}
}
}])
.config(['$httpProvider', function ($httpProvider) {
$httpProvider.interceptors.push('myInterceptor');
}]);