This library adds @ionic-native/http (when available) as a connection backend to Angular's Http and HttpClient
Now that Apple promotes/requires the use of WKWebView instead of the deprecated UIWebView, Ionic has switched newly created apps over via their cordova-plugin-ionic-webview
(and Cordova offers it via their cordova-plugin-wkwebview-engine). That causes requests that used to work just fine to fail with CORS errors.
The real solution of course is to fix the CORS issues server side - but this may not be possible with e.g. 3rd party APIs.
Even though there is a way to solve CORS issues without changing server's response header by using @ionic-native/http, this only works on device and doesn't provide all the power of Angular's Http and HttpClient.
- The library provides a HttpBackendinterface for Angular'sHttpClient
- This HttpBackendinterface tries to use@ionic-native/httpwhenever it is possible (= on device with installed plugin)
- If HttpBackendfinds it impossible to use@ionic-native/http, it falls back to standard Angular code (HttpXhrBackend, which usesXmlHttpRequest)
This strategy allows developers to use Angular's HttpClient transparently in both environments: Browser and Device.
npm install --save ionic-native-http-connection-backendThen follow instructions at https://ionicframework.com/docs/native/http/#installation
For Ionic 4 support consider
npm install --save ionic-native-http-connection-backend@nextAdd NativeHttpModule, NativeHttpBackend and NativeHttpFallback into the application's module
import { NgModule } from '@angular/core';
import { HttpBackend, HttpXhrBackend } from '@angular/common/http';
import { NativeHttpModule, NativeHttpBackend, NativeHttpFallback } from 'ionic-native-http-connection-backend';
import { Platform } from 'ionic-angular';
@NgModule({
    declarations: [],
    imports: [
        NativeHttpModule
    ],
    bootstrap: [],
    entryComponents: [],
    providers: [
        {provide: HttpBackend, useClass: NativeHttpFallback, deps: [Platform, NativeHttpBackend, HttpXhrBackend]},
    ],
})
export class AppModule {
}Contributing guidelines could be found in CONTRIBUTING.md