diff --git a/js/Client/unicaenVue.js b/js/Client/unicaenVue.js index ac1debf3ac43d9bd604ae99de032584b53fe671f..9a02b41453fcc2d33e678188b5bbbfb6cc2b23c6 100644 --- a/js/Client/unicaenVue.js +++ b/js/Client/unicaenVue.js @@ -23,10 +23,30 @@ const unicaenVue = { } // traitement de la requĂȘte GET - let getArgs = query ? new URLSearchParams(query).toString() : null; + let getArgs = query ? unicaenVue.encodeUrlQueryParam(query) : null; // Construction et retour de l'URL return baseUrl + route + (getArgs ? `?${getArgs}` : ''); + }, + + encodeUrlQueryParam: (query, parentKey) => { + var params = []; + + for (var key in query) { + if (query.hasOwnProperty(key)) { + var value = query[key]; + var encodedKey = parentKey ? parentKey + '[' + encodeURIComponent(key) + ']' : encodeURIComponent(key); + + if (typeof value === 'object' && value !== null) { + params.push(unicaenVue.encodeUrlQueryParam(value, encodedKey)); + } else { + var encodedValue = encodeURIComponent(value); + params.push(encodedKey + '=' + encodedValue); + } + } + } + + return params.join('&'); } };