diff --git a/resources/assets/vue/vuex/modules/crudRequest.js b/resources/assets/vue/vuex/modules/crudRequest.js index 1bb07e78..1360fd58 100644 --- a/resources/assets/vue/vuex/modules/crudRequest.js +++ b/resources/assets/vue/vuex/modules/crudRequest.js @@ -3,8 +3,12 @@ export default { crudRequest({getters, dispatch}, {endpoint, method, parameters}){ return dispatch('ensureReCaptchaIsSet').then(function () { const queryDomain = endpoint.split('?')[0]; - const queryParams = encodeURIComponent(endpoint.split('?')[1]); - let encodedParams = queryParams.toString(); + let isStringEncoded = isEncoded(endpoint.split('?')[1]); + let encodedParams = endpoint.split('?')[1]; + if(!isStringEncoded){ + const queryParams = encodeURIComponent(endpoint.split('?')[1]); + encodedParams = queryParams.toString(); + } let filteredEncodedParams = encodedParams.replace(/%3D/g,'='); filteredEncodedParams = filteredEncodedParams.replace(/%26/g,'&'); console.log('filteredEncodedParams: ', filteredEncodedParams); @@ -36,3 +40,15 @@ export default { } } } + +function isEncoded(uri) { + uri = uri || ''; + return uri !== decodeURIComponent(uri); +} + +function fullyDecodeURI(uri){ + while (isEncoded(uri)){ + uri = decodeURIComponent(uri); + } + return uri; +}