Angular 2(Ionic 2):拦截Ajax请求

克里斯蒂安·本勒(Christian Benseler)

使用Angular 1.x可以用以下代码拦截所有ajax请求:

$httpProvider.interceptors.push('interceptRequests');
...
var app_services = angular.module('app.services', []);
   app_services.factory('interceptRequests', [function () {
   var authInterceptorServiceFactory = {};
   var _request = function (config) {
   //do something here
   };
   var _responseError = function (rejection) {
   //do something here
   }
   authInterceptorServiceFactory.request = _request;
   authInterceptorServiceFactory.responseError = _responseError;
   return authInterceptorServiceFactory;
}]);

Angular 2中有类似的东西(或开箱即用)吗?

蒂埃里圣堂武士

一种方法可能是扩展HTTP对象以拦截调用:

@Injectable()
export class CustomHttp extends Http {

  request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> {
    console.log('request...');
    return super.request(url, options).catch(res => {
      // do something
    });        
  }

  get(url: string, options?: RequestOptionsArgs): Observable<Response> {
    console.log('get...');
    return super.get(url, options).catch(res => {
      // do something
    });
  }
}

并按照以下说明进行注册:

bootstrap(AppComponent, [HTTP_PROVIDERS,
    new Provider(Http, {
      useFactory: (backend: XHRBackend, defaultOptions: RequestOptions) => new CustomHttp(backend, defaultOptions),
      deps: [XHRBackend, RequestOptions]
  })
]);

例如,您可以利用catch操作员来捕获错误并在全局范围内进行处理...

请参阅以下代码:https ://plnkr.co/edit/ukcJRuZ7QKlV73jiUDd1 ? p = preview

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular 2(Ionic 2):拦截Ajax请求

来自分类Dev

间隔上的Ionic2或Angular2 HTTP请求

来自分类Dev

Ionic 2 / Angular - 操作 JSON

来自分类Dev

Ionic 2/Angular 2 显示阵列

来自分类Dev

Angular 2 和 Ionic 2 与 Visual Studio

来自分类Dev

Typhoeus的Ruby 2拦截请求

来自分类Dev

链接AJAX请求-Angular 2和ES2015承诺

来自分类Dev

如何在Angular 2中触发ajax请求?

来自分类Dev

Angular2中的拦截器

来自分类Dev

CORS Angular 2 拦截器

来自分类Dev

将JavaScript \ Ionic \ Angular 1应用迁移到Typescript \ Ionic 2 \ Angular 2应用

来自分类Dev

Ionic 2-Angular 2 HTTP标头未与请求一起发送

来自分类Dev

在angular2 / ionic2中同时执行可观察的请求

来自分类Dev

如何使用Angular JS拦截每个Ajax请求

来自分类Dev

带有Angular JS 1或Angular JS 2的Ionic 1

来自分类Dev

Ionic 2 / Angular 2:如何从Ionic 2警报上的超链接或按钮发出单击事件?

来自分类Dev

Angular 2 + Ionic 2:检测对象是否被修改

来自分类Dev

Ionic 2 / Angular 2中的承诺,怎么办?

来自分类Dev

ionic2 + Angular2的列表选择

来自分类Dev

ionic2 + angular2-单击禁用按钮

来自分类Dev

Ionic2 + Angular2还是React-native?

来自分类Dev

Angular2 / Ionic2:数据绑定

来自分类Dev

在Ionic 2 / Angular 2 beta 10中访问窗口对象

来自分类Dev

以Angular 2 / Ionic 2中的形式访问选定的对象属性

来自分类Dev

Ionic 2 / Angular 2中的承诺,怎么办?

来自分类Dev

Angular 2 / Ionic 2 ngModel动态全局变量

来自分类Dev

Angular2 Ionic2使用Cordova创建插件

来自分类Dev

Angular 2 / Ionic 2中的Typescript转换错误

来自分类Dev

由于Angular 2验证属性,Ionic 2构建失败