角度“响应未定义”时尝试为资源实现全局错误处理程序
Angular "Response is undefined" when attempting to implement a global error handler for a resource
我是 angular 的新手,并试图创建一个全局错误处理程序。 每当以 500 http 状态调用资源时,我都想重定向到通用错误页面。
每当我实现注入器时,我都会收到"响应未定义"错误。 我做错了什么? 我目前已注释掉重定向,但仍然收到错误。
var appServices = angular.module('appServices', ['ngResource']);
appServices.factory('ApplicationService', ['$resource', function ($resource) {
return $resource('http://localhost:23357/api/application/:id', { id: '@id' }, {
update: {
method: 'PUT'
}
});
}]);
appServices.factory('globalErrorInterceptor', ['$location', '$q', '$injector', function ($location, $q, $injector) {
return {
'responseError': function (r) {
console.log('global error test');
/*
commented out for testing
if (r.status == 500) {
$location.path('/error');
}
else
return $q.reject(r);
*/
return $q.reject(r);
}
}
}]);
appServices.config(['$httpProvider', function ($httpProvider) {
$httpProvider.interceptors.push('globalErrorInterceptor')
}]);
然后在我的控制器中,我像这样调用资源。 目前,Web 服务设置为始终返回 500。
$scope.applications = ApplicationService.query();
我需要始终返回 $q.reject,因此工作拦截器如下所示:
appServices.factory('globalErrorInterceptor', ['$location', '$q', '$injector', function ($location, $q, $injector) {
return {
'responseError': function (r) {
console.log(r);
if (r.status == 500) {
$location.path('/error');
}
return $q.reject(r);
}
}
}]);
相关文章:
- 如何使用动画实现纸张推车
- 客户端服务器REST API captcha实现
- 如何实现此布局
- Meteor忘记了密码的实现
- 使用Native Sockets在Android中实现WebSockets
- 在样板文件中实现Ajax
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- WebResources嵌入式资源和Javascript如何在另一个嵌入式资源中使用它们
- instanceof是如何在JavaScript中实现的
- 如何正确实现Jquery多选小部件
- 如何在构建node-webkit应用程序后获取外部资源
- 实现一个建立在google.com之上的自定义搜索引擎
- ADF:有条件地加载javascript资源
- AngularJS-检查我的资源工厂的实现
- 否'访问控制允许来源'请求的资源上存在标头.-Pinterest oauth实现
- AngularJS——资源并在实现之前使用它们
- 使用jQuery和Tornado实现跨源资源共享(CORS)
- 角度“响应未定义”时尝试为资源实现全局错误处理程序
- 需要实现html按钮访问REST获取资源
- 如何使用ajax POST实现跨域资源共享(CORS)