📌  相关文章
📜  NullInjectorError:没有 HttpHandler 的提供者! - Javascript(1)

📅  最后修改于: 2023-12-03 15:18:02.487000             🧑  作者: Mango

NullInjectorError: No provider for HttpHandler! - Javascript

该错误通常出现在Angular应用程序中,表明您正在尝试使用HttpHandler但没有正确注入它的提供者。

常见场景
  1. 您可能正在使用HttpClientModule但未正确导入它。请确保导入HttpClientModule:
import { HttpClientModule } from '@angular/common/http';
// ...
@NgModule({
  imports: [
    // ...
    HttpClientModule,
    // ...
  ],
})
export class AppModule {}
  1. 您可能正在使用Angular低版本中的不正确的语法。在早期的Angular版本中,您可能会使用HttpModule而不是HttpClientModule。请升级到最新版本的Angular并使用HttpClientModule,而不是HttpModule
// 使用HttpClientModule
import { HttpClientModule } from '@angular/common/http';
// ...

// 避免使用HttpModule
import { HttpModule } from '@angular/http';
// ...
@NgModule({
  imports: [
    // ...
    HttpClientModule,
    // ...
  ],
})
export class AppModule {}
  1. 您可能正在手动创建HTTP请求,但未指定正确的HTTP参数。在创建HTTP请求的过程中,您需要传递一些参数,例如HTTP请求方法,URL和可选数据。请确保您已正确设置这些参数。
import { HttpClient, HttpHeaders } from '@angular/common/http';
// ...
export class YourService {
  constructor(private http: HttpClient) {}

  makeRequest() {
    const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
    const body = { ... };
    return this.http.post('/api/your-endpoint', body, { headers });
  }
}
结论

如果您正在编写一个使用Angular的应用程序,并且在使用HttpClient时遇到了NullInjectorError:没有 HttpHandler 的提供者!错误,请仔细查看上述场景并确保您已正确注入HttpClientModule或手动指定正确的HTTP参数。