0

Я использую angular2-перехватчик в моем проекте Angular2, но когда я пытаюсь вызвать метод/GET POST затем произошла эта ошибка:Свойство 'post' не существует в типе 'ServerURLInterceptor', в Angular 2 при использовании ng2-перехватчика?

Свойство «пост» не существует на типе «ServerURLInterceptor».

Пожалуйста, предложите мне, где я делаю wrong.I хочу использовать перехватчик для trck каждого запроса, но когда я использую любой запрос, например GET или POST, он говорит, что Property 'post' не существует в типе ServerURLInterceptor.

Мой код:

interceptorService.ts:

import { Interceptor, InterceptedRequest, InterceptedResponse } from 'ng2-interceptors'; 
export class ServerURLInterceptor implements Interceptor { 
    public interceptBefore(request: InterceptedRequest): InterceptedRequest { 
     console.log(request); 
     return request; 
     /* 
      You can return: 
      - Request: The modified request 
      - Nothing: For convenience: It's just like returning the request 
      - <any>(Observable.throw("cancelled")): Cancels the request, interrupting it from the pipeline, and calling back 'interceptAfter' in backwards order of those interceptors that got called up to this point. 
     */ 
    } 

    public interceptAfter(response: InterceptedResponse): InterceptedResponse { 
      console.log(response); 
      return response; 
     /* 
      You can return: 
      - Response: The modified response 
      - Nothing: For convenience: It's just like returning the response 
     */ 
    } 
} 

app.module.ts:

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { MaterialModule } from '@angular/material'; 
import { AppComponent } from './app.component'; 
import { AppRoutingModule } from './app-routing.module'; 
import { LoginComponent } from './components/login/login.component'; 
import { FormsModule } from '@angular/forms'; 
import { LoginService } from './helper/services/login.service'; 

import { InterceptorService } from 'ng2-interceptors'; 
import { ServerURLInterceptor } from './helper/interceptor/interceptorService'; 
import { XHRBackend, RequestOptions } from '@angular/http'; 
export function interceptorFactory(xhrBackend: XHRBackend, requestOptions: RequestOptions, serverURLInterceptor:ServerURLInterceptor){ // Add it here 
    let service = new InterceptorService(xhrBackend, requestOptions); 
    service.addInterceptor(serverURLInterceptor); // Add it here 
    console.log("interceptor"); 
    return service; 
} 


@NgModule({ 
    imports: [ 
    MaterialModule.forRoot(), 
    BrowserModule, 
    AppRoutingModule, 
    FormsModule 
    ], 
    declarations: [ 
    AppComponent, 
    LoginComponent 
    ],  
    providers: [ 
    LoginService, 
    ServerURLInterceptor, 
    { 
     provide: InterceptorService, 
     useFactory: interceptorFactory, 
     deps: [XHRBackend, RequestOptions, ServerURLInterceptor] // Add it here, in the same order as the signature of interceptorFactory 
    } 
    ],           
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

login.service.ts:

import { Injectable } from '@angular/core'; 
import { Observable } from 'rxjs/Observable'; 
import { Http } from '@angular/http'; 
import { ServerURLInterceptor } from '../../helper/interceptor/interceptorService';   

@Injectable() 
export class LoginService { 
    // constructor(private http:Http){} 
    constructor(private http:ServerURLInterceptor){} 

    login(username:string,password:string){ 
    console.log(username+" , "+password+" in LoginService"); 
    debugger; 
    return this.http.post('http://localhost:4100/login', { 
     email: username, 
     password:password 
    }); 
    // .map(response => response.json().data); 
    } 
} 

import { Injectable } from '@angular/core'; 
import { Observable } from 'rxjs/Observable'; 
import { Http } from '@angular/http'; 
import { ServerURLInterceptor } from '../../helper/interceptor/interceptorService'; 

@Injectable() 
export class LoginService{ 
    // constructor(private http:Http){} 
    constructor(private http:ServerURLInterceptor){} 

    login(username:string,password:string) { 
    console.log(username+" , "+password+" in LoginService"); 
    debugger; 
    return this.http.post('http://localhost:4100/login',{ 
     email: username, 
     password:password 
    }); 
    // .map(response => response.json().data); 
    } 
} 

ответ

0

импорт InterceptorService правильно как в коде ниже в вашем login.component.ts:

import { InterceptorService  } from 'ng2-interceptors'; 

 Смежные вопросы

  • Нет связанных вопросов^_^