【angularjs拦截器怎么用? _angular model 】 | IT修真院·坑乎
问题已收录 angularjs拦截器怎么用?
我也踩过这个坑( 1 )
已统计您的踩坑,无需重复点击
回答(1)
angular model
详细描述
截图
代码
编辑于2024-11-24
  • [深圳|结业弟子]JS-张峻
    0

    每个拦截器都可以实现4个可选的处理函数,分别对应请求(成功/失败)和响应(成功/失败)的拦截:

    • request:此函数在$http向Server发送请求之前被调用,在此函数中可以对成功的http请求进行处理,其包含一个http config对象作为参数,这里对config对象具有完全的处理权限,甚至可以重新构造,然后直接返回此对象或返回包含此对象的promise即可。如果返回有误,会造成$http请求失败。如开发中经常需要在请求头中加入token以便验证身份,我们可以作如下处理:
    request: function(config) {
        config.headers = config.headers || {};    if ($window.sessionStorage.token) {
            config.headers['X-Access-Token'] = $window.sessionStorage.token;
        }    return config || $q.when(config);
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • requestError:此方法会在前一个拦截器抛出异常或进行了reject操作时被调用,在这里可以进行恢复请求的操作,或者进行一些对于请求时发起动作的处理(如取消loading等);
    • response:此函数在$http从Server接收到响应时被调用,在此函数中可以对成功的http响应进行处理,这里具有对响应的完全处理权限,甚至可以重新构造,然后直接返回响应或返回包含响应的promise即可。如果返回有误,会造成$http接收响应失败
    • responseError:此方法会在前一个拦截器抛出异常或进行了reject操作时被调用,在这里可以进行恢复响应的操作,进行一些针对错误的处理。


    所以写在response中的函数表示拦截成功的响应,根据后端返回的code码,做相应处理,如例子中返回-20表示未登录,这时让其跳转到登录页面。


    编辑于2018-06-12