Im essayant d'envoyer une structure json à un service de repos à partir de angular faisant quelque chose comme ça
let test5var = {
"test5var1": {
"test5var2": "0317",
"test5var3": "9556"
},
"test5var4": "123",
"test5var": "0000046"
}
let dataPrincipalBlnc = {"test": {"test1": {"test2": "0317","test3": {"IDIOMA_ISO": " en","DIALECTO_ISO": "US"},"channel": "INT"},"input": {"test5": test5var}}};
let headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
let params = new HttpParams().set("requestData", dataPrincipalBlnc.toString()).set("authenticationType", this.authType);
return this.http.get(this.url, {params: params});
Le résultat de la demande doit ressembler à ceci:
Mais il est actuellement envoyé sous la forme:
https://example.com/test?requestData=%5Bobject%20Object%5D&authenticationType=cookie
Des idées comment envoyer l'objet json à la première demande? Dois-je convertir manuellement le json en un format uri valide?
Dans angularJS fonctionne très bien en utilisant simplement le code suivant:
var data = {
"test1": {
"test2": {
"test3": "0317",
"test4": {
"IDIOMA_ISO": " en",
"DIALECTO_ISO": "US"
},
"channel": "INT"
},
"input": {
"test5": test5var
}
}
};
$http.get(url, {
params: {
authenticationType: authType,
requestData: data
}
}).then(success(deferred), error(deferred));
J'ai également essayé d'utiliser le code suivant, mais le résultat ajoute plus de caractères et le backend échoue car il dit que le JSON n'est pas dans un format valide:
encodeURIComponent(JSON.stringify(dataPrincipalBlnc)
? requestData =% 257B% 2522test% 2522% 253A% 257B% 2522test1% 2522% 253A% 257B% 2522test2% 2522% 253A% 25220317% 2522% 252C% 2522test3% 2522% 253A% 257B% 2522IDIOMA_ISO% 2522 2520en% 2522% 252C% 2522DIALECTO_ISO% 2522% 253A% 2522US% 2522% 257D% 252C% 2522channel% 2522% 253A% 2522INT% 2522% 257D% 252C% 2522entrée% 2522% 253A% 257B% 2522test5% 2522% 252% 2522test5var1% 2522% 253A% 257B% 2522test5var2% 2522% 253A% 25220317% 2522% 252C% 2522test5var4% 2522% 253A% 25229556% 2522% 257D% 252C% 2522test5var4% 2522% 253A% 2522225%% 253A% 25220003303% 2522% 257D% 257D% 257D% 257D & authenticationType = cookie
Merci Cordialement
Je viens de résoudre le problème en définissant les données en tant qu'objet et en utilisant uniquement le JSON.stringify:
let dataPrincipalBlnc: object;
let dataPrincipalBlnc = {"test": {"test1": {"test2": "0317","test3": {"IDIOMA_ISO": " en","DIALECTO_ISO": "US"},"channel": "INT"},"input": {"test5": test5var}}};
let params = new HttpParams().set("requestData", JSON.stringify(dataPrincipalBlnc)).set("authenticationType", this.authType);
Merci pour votre aide Cordialement