我寫了一個簡單的攔截器「NoopInterceptorService」
但我得到一個錯誤「沒有NoopInterceptorService的提供者!」 ,
可能是什麼原因?
如何解決?
錯誤:NoopInterceptorService沒有提供程序!角4.3.6?
回答
這LINK應該幫助如何編寫攔截器。
import { Observable } from 'rxjs';
import {Injectable} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest} from '@angular/common/http';
import { HttpErrorResponse } from "@angular/common/http";
@Injectable()
export class AngularInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).do(event => {}, err => {
if(err instanceof HttpErrorResponse){
console.log("Error Caught By Interceptor");
//Observable.throw(err);
}
});
}
}
撐着在
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpClientModule
],
providers: [
[ { provide: HTTP_INTERCEPTORS, useClass:
AngularInterceptor, multi: true } ]
],
bootstrap: [AppComponent]
})
export class AppModule {
}
當我添加提供「HTTP_INTERCEPTORS」時,我會收到一個錯誤「NoopInterceptorService沒有提供者!」 {提供:HTTP_INTERCEPTORS,useClass:AngularInterceptor,multi:true} – toney
首先,爲了實現攔截器,你已經使用HttpClientModule
而不是HttpModule
任何HTTP調用。
現在,執行:
在你App.module.ts文件,導入:
import {HttpClientModule, HTTP_INTERCEPTORS} from '@angular/common/http';
和你的進口數組中AppModule
添加以下內容:
imports: [
.
HttpClientModule,
.
]
您的提供商陣列和NoopInterceptorService
實施似乎是正確的。但是,重要的是,無論何時您將在任何組件代碼中使用http方法,請不要忘記使用http方法HttpClientModule
而不是舊的HttpModule
。
我想如果你遵循這個,你的INTERCEPTORS將會工作。
這就是我寫的,但是我得到一個錯誤「NoopInterceptorService沒有提供者!」 – toney
- 1. 4角(角CLI)錯誤:沒有提供程序的翻譯:
- 2. 錯誤:沒有提供程序ValidateService
- 3. 錯誤:沒有配置提供程序
- 4. 錯誤:沒有提供程序組件
- 5. 錯誤:沒有提供程序AuthInterceptor
- 6. 沒有提供MdDialog錯誤
- 7. 沒有Http的提供商!錯誤:沒有提供程序的Http!在注入錯誤
- 8. OraOleDB提供程序錯誤
- 9. 角2自定義HTTP服務引發錯誤:沒有提供程序XHRBackend
- 10. 使用ngControl造成錯誤:沒有提供程序ControlContainer
- 11. 錯誤:在Ionic2中沒有爲MediaCapture提供程序
- 12. 獲取錯誤「沒有AlertIconAndTypesService提供程序!」
- 13. 休眠JPA - 沒有EntityManager錯誤的持久性提供程序
- 14. 錯誤:沒有爲HttpService提供程序!在Karma測試
- 15. 角2服務錯誤 - 沒有提供對HTTP
- 16. 角度2錯誤沒有「BillingService」的提供者
- 17. 測量角服務提供了錯誤:沒有模塊:ngResource
- 18. Footable錯誤:錯誤:沒有列提供的,沒有顯示錶
- 19. mvc3在Web.Config上的自定義角色提供程序錯誤
- 20. 角度開放$ uibModal給未知的提供程序錯誤
- 21. NG引導程序模式組件沒有提供程序錯誤
- 22. Electron應用程序中的Angular2錯誤:沒有PlatformRef的提供程序
- 23. 錯誤:沒有NavParams的提供商
- 24. cx_Freeze錯誤:沒有提供命令
- 25. 怪異「沒有提供參數」錯誤
- 26. 錯誤:沒有JwtHelper的提供者
- 27. 23andMe API錯誤:'沒有提供grant_type。' 'invalid_request'OAuth2
- 28. 錯誤:沒有提供「框架:協議」
- 29. Angular 2 - 沒有提供程序錯誤(儘管我已經添加了提供程序)
- 30. 錯誤:在angular2中沒有提供HttpHandler的提供者
你的根模塊進口HttpClientModule? –