Hello,
I tried your solution but it seems to not not work for me still in 2021 and i don’t understand why.
Ionic:
Ionic CLI : 6.12.3 (/Users/alexismurciano/.nvm/versions/node/v10.15.3/lib/node_modules/@ionic/cli)
Ionic Framework : @ionic/angular 5.4.3
@angular-devkit/build-angular : 0.1002.0
@angular-devkit/schematics : 10.0.8
@angular/cli : 10.0.8
@ionic/angular-toolkit : 2.3.3
Cordova:
Cordova CLI : 10.0.0
Cordova Platforms : android 9.0.0, ios 6.1.1
Cordova Plugins : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.2.1, (and 9 other plugins)
Utility:
cordova-res (update available: 0.15.3) : 0.15.1
native-run : 1.3.0
System:
ios-deploy : 1.11.4
ios-sim : 8.0.2
NodeJS : v10.15.3 (/Users/alexismurciano/.nvm/versions/node/v10.15.3/bin/node)
npm : 6.4.1
OS : macOS Catalina
Xcode : Xcode 12.4 Build version 12D4e
dependencies
"@ionic-native/http": "^5.30.0",
dev-dependencies
"cordova-plugin-advanced-http": "^3.1.0",
On Android no problem this code will work :
import { HTTP } from '@ionic-native/http/ngx';
...
this.http.post(url, input, {})
.then(data => {console.log("test",data)})
.catch(error => console.log("test",error));
On ios it’s not working even if i add serializer and header like that :
this.http.setDataSerializer('json');
this.http.post(url, input, {"Content-Type": "application/json"})
.then(data => {console.log("test",data)})
.catch(error => console.log("test",error));
The only way i found to make it work is to remove all serializer and headers and stringify subObject, like that (using url-encoded by default i assume) :
const input = {
'transactionData': JSON.stringify(objectOrder),
'clientData': JSON.stringify(userInfos) // ios n'aime pas les objets en direct ?? json.stringify
}; // la langue sera envoyé mais pas visible dans les paramètres get
this.http.post(url, input, {})
.then(data => {console.log("test",data)})
.catch(error => console.log("test",error));
Thanks for everyone who can help me figure this out ( and understand it also ^^)