2017-07-28 7 views
1

修正方法がわからないというエラーが表示されます。私はすでに解決策を探していますが、彼らは私を助けませんでした。HTTPプロバイダエラーIonic 3

これは、Ionic Native Http(GETとPOSTの両方)を使用してHTTPリクエストを行うことです。

エラー:それは私がHTTPプロバイダを設定していないよように見えるのですが、app.module.tsに私はをインポートしていますが、それは

ERROR Error: Uncaught (in promise): Error: No provider for HTTP! 
    Error: No provider for HTTP! 
     at injectionError (vendor.js:1590) 
     at noProviderError (vendor.js:1628) 
     at ReflectiveInjector_._throwOrNull (vendor.js:3129) 
     at ReflectiveInjector_._getByKeyDefault (vendor.js:3168) 
     at ReflectiveInjector_._getByKey (vendor.js:3100) 
     at ReflectiveInjector_.get (vendor.js:2969) 
     at AppModuleInjector.get (ng:///AppModule/module.ngfactory.js:240) 
     at AppModuleInjector.getInternal (ng:///AppModule/module.ngfactory.js:365) 
     at AppModuleInjector.NgModuleInjector.get (vendor.js:3936) 
     at resolveDep (vendor.js:11398) 
     at injectionError (vendor.js:1590) 
     at noProviderError (vendor.js:1628) 
     at ReflectiveInjector_._throwOrNull (vendor.js:3129) 
     at ReflectiveInjector_._getByKeyDefault (vendor.js:3168) 
     at ReflectiveInjector_._getByKey (vendor.js:3100) 
     at ReflectiveInjector_.get (vendor.js:2969) 
     at AppModuleInjector.get (ng:///AppModule/module.ngfactory.js:240) 
     at AppModuleInjector.getInternal (ng:///AppModule/module.ngfactory.js:365) 
     at AppModuleInjector.NgModuleInjector.get (vendor.js:3936) 
     at resolveDep (vendor.js:11398) 
     at c (polyfills.js:3) 
     at Object.reject (polyfills.js:3) 
     at NavControllerBase._fireError (vendor.js:43003) 
     at NavControllerBase._failed (vendor.js:42991) 
     at vendor.js:43046 
     at t.invoke (polyfills.js:3) 
     at Object.onInvoke (vendor.js:4508) 
     at t.invoke (polyfills.js:3) 
     at r.run (polyfills.js:3) 
     at polyfills.js:3 

コード:

app.module.ts

あなたのAPIServiceで

api.service.ts

import { Injectable } from '@angular/core'; 
import { HTTP } from '@ionic-native/http'; 

@Injectable() 
export class ApiService { 

    constructor (private http: HTTP) { } 

    private apiUrl = '<VALID_URL>'; 

    get() { 
     // Some OK http request here! 
    } 
} 

packaje.json

{ 
     "name": "app", 
     "version": "0.0.1", 
     "author": "Ionic Framework", 
     "homepage": "http://ionicframework.com/", 
     "private": true, 
     "scripts": { 
     "clean": "ionic-app-scripts clean", 
     "build": "ionic-app-scripts build", 
     "lint": "ionic-app-scripts lint", 
     "ionic:build": "ionic-app-scripts build", 
     "ionic:serve": "ionic-app-scripts serve" 
    }, 
     "dependencies": { 
     "@angular/common": "4.1.3", 
     "@angular/compiler": "4.1.3", 
     "@angular/compiler-cli": "4.1.3", 
     "@angular/core": "4.1.3", 
     "@angular/forms": "4.1.3", 
     "@angular/http": "4.1.3", 
     "@angular/platform-browser": "4.1.3", 
     "@angular/platform-browser-dynamic": "4.1.3", 
     "@ionic-native/core": "3.12.1", 
     "@ionic-native/http": "^4.1.0", 
     "@ionic-native/splash-screen": "3.12.1", 
     "@ionic-native/status-bar": "3.12.1", 
     "@ionic/storage": "2.0.1", 
     "cordova-android": "^6.2.3", 
     "cordova-plugin-console": "1.0.5", 
     "cordova-plugin-device": "1.1.4", 
     "cordova-plugin-splashscreen": "~4.0.1", 
     "cordova-plugin-statusbar": "2.2.2", 
     "cordova-plugin-whitelist": "1.3.1", 
     "ionic-angular": "3.5.3", 
     "ionic-plugin-keyboard": "~2.2.1", 
     "ionicons": "3.0.0", 
     "rxjs": "5.4.0", 
     "sw-toolbox": "3.6.0", 
     "zone.js": "0.8.12" 
    }, 
     "devDependencies": { 
     "@ionic/app-scripts": "2.0.2", 
     "@ionic/cli-plugin-cordova": "1.5.0", 
     "@ionic/cli-plugin-ionic-angular": "1.4.0", 
     "ionic": "3.6.0", 
     "typescript": "2.3.4" 
    }, 
     "description": "An Ionic project", 
     "cordova": { 
      "plugins": { 
       "cordova-plugin-console": {}, 
       "cordova-plugin-device": {}, 
       "cordova-plugin-splashscreen": {}, 
       "cordova-plugin-statusbar": {}, 
       "cordova-plugin-whitelist": {}, 
       "ionic-plugin-keyboard": {} 
      }, 
      "platforms": [ 
       "android" 
      ] 
     } 
    } 

答えて

2

この

import { Injectable } from '@angular/core'; 
import { Http } from '@angular/http'; 

@Injectable() 
export class ApiService { 

    constructor (private http: Http) { } 

    private apiUrl = '<VALID_URL>'; 

    get() { 
     // Some OK http request here! 
    } 
} 

あなたのエラーはおそらく、このラインから来ているん

import { HTTP } from '@ionic-native/http'; 

ただし、@angular/httpからモジュールをインポートしました。

+0

これで問題は解決しますか? – brijmcq

+0

Thaks @brijmcq! –

1

私は同じエラーを持っていたし、私はこのようなproviders配列にモジュールを追加します。

... 

import { StatusBar } from '@ionic-native/status-bar'; 
import { SplashScreen } from '@ionic-native/splash-screen'; 
import { HTTP } from '@ionic-native/http'; 

... 

providers: [ 
    StatusBar, 
    SplashScreen, 
    HTTP, 
    {provide: ErrorHandler, useClass: IonicErrorHandler} 
    ] 

... 

は私がionic3と同じエラーが発生しました

0

に役立ちます願っています。このエラーを解決するには、プロバイダにHTTPを追加してください

import { HTTP } from '@ionic-native/http'; 

... 

providers: [ 
    StatusBar, 
    SplashScreen, 
    HTTP, 
    {provide: ErrorHandler, useClass: IonicErrorHandler} 
]