Ionic-Native/http emits error "Nullinjectorerror: No Provider for HTTP!"

Asked

Viewed 1,234 times

3

I’m starting at the Ionic 3.2 angled, as documented https://ionicframework.com/docs/native/http/ I installed the module in the project @ionic-native/http with the following commands via CMD:

ionic cordova plugin add cordova-plugin-advanced-http
npm install --save @ionic-native/http

So in the script autenticar.ts (that is part of a page that I created autenticar.html) added the import { HTTP } from '@ionic-native/http'; in accordance with:

import { Component, ViewChild } from '@angular/core';
import { NavController } from 'ionic-angular';
import { HTTP } from '@ionic-native/http';

@Component({
  selector: 'page-autenticar',
  templateUrl: 'autenticar.html'
})
export class AutenticarPage {

  @ViewChild('username') username;
  @ViewChild('password') password;

  constructor(public navCtrl: NavController, public http: HTTP) {
    console.log(http)
  }

...

While reloading the application got the following error message:

Runtime Error
Uncaught (in promise): Error: StaticInjectorError(AppModule)
[AutenticarPage -> HTTP]: StaticInjectorError(Platform: core)[AutenticarPage -> HTTP]:
NullInjectorError: No provider for HTTP!
Error: StaticInjectorError(AppModule)[AutenticarPage -> HTTP]:
StaticInjectorError(Platform: core)[AutenticarPage -> HTTP]:
NullInjectorError: No provider for HTTP! at _NullInjector.get
(http://localhost:8100/build/vendor.js:1376:19) at resolveToken
(http://localhost:8100/build/vendor.js:1674:24) at tryResolveToken
(http://localhost:8100/build/vendor.js:1616:16) at StaticInjector.get
(http://localhost:8100/build/vendor.js:1484:20) at resolveToken
(http://localhost:8100/build/vendor.js:1674:24) at tryResolveToken
(http://localhost:8100/build/vendor.js:1616:16) at StaticInjector.get
(http://localhost:8100/build/vendor.js:1484:20) at resolveNgModuleDep
(http://localhost:8100/build/vendor.js:11228:25) at NgModuleRef_.get
(http://localhost:8100/build/vendor.js:12461:16) at resolveDep
(http://localhost:8100/build/vendor.js:12951:45)

So by reading this reply the author states that it is necessary to add to app.module.ts this import { HttpModule } from '@angular/http';, was like this:

import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { HttpModule } from '@angular/http';
import { MyApp } from './app.component';

....

  imports: [
    BrowserModule,
    HttpModule,
    IonicModule.forRoot(MyApp)
  ],

...

However even after installing and adding to the app.modules the error persists.

1 answer

3

Take a look at item 2 of the link you posted from the documentation it says you have to add import to the providers of your module.

import { HTTP } from '@ionic-native/http';
...
imports: [
    BrowserModule,
    HttpModule,
    IonicModule.forRoot(MyApp)
  ],
providers: [
    HTTP
   ]
...

Browser other questions tagged

You are not signed in. Login or sign up in order to post.