AngularJS 错误怎么统一处理

2025-03-29 16:33:58
推荐回答(1个)
回答1:

这个是我两年前写的代码,那时还ng不稳定,不知道现在还能不能用....

原理就是插入一个拦截器到 responseInterceptors,代码放到 module 定义下:
angular.module('app', ['ngSanitize'],
['$httpProvider', '$routeProvider', '$locationProvider', ($httpProvider, $routeProvider, $locationProvider) ->
interceptor = ['$rootScope', '$q', ($scope, $q) ->
success = (response) ->
response
error = (response) ->
status = response.status
if status is 400
$.jGrowl response.data.join('
')
else if status is 403
$.jGrowl response.data
else
$.jGrowl "错误:#{status}"
deferred = $q.defer()
req =
config:response.config
deferred:deferred
$q.reject(response)
(promise) ->
promise.then(success, error)
]
$httpProvider.responseInterceptors.push(interceptor)
)