Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordizzy <diosmosis@users.noreply.github.com>2022-02-24 23:01:55 +0300
committerGitHub <noreply@github.com>2022-02-24 23:01:55 +0300
commit7b09d5edaeda5b31d0a00a041a87463edc9da635 (patch)
tree55d52b2ac5f033913b7235c3c7373fc2aa160be5 /plugins/CoreHome/vue/src
parentbffce0bd85a011bbfd34e06117168690d18fb85d (diff)
make sure segment is encoded properly in URL when AjaxHelper.fetch is used (#18844)
Diffstat (limited to 'plugins/CoreHome/vue/src')
-rw-r--r--plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts8
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts b/plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts
index 2e5d2bb924..c49e0e84c0 100644
--- a/plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts
+++ b/plugins/CoreHome/vue/src/AjaxHelper/AjaxHelper.ts
@@ -193,6 +193,14 @@ export default class AjaxHelper<T = any> { // eslint-disable-line
module: 'API',
format: options.format || 'json',
...params,
+ // ajax helper does not encode the segment parameter assuming it is already encoded. this is
+ // probably for pre-angularjs code, so we don't want to do this now, but just treat segment
+ // as a normal query parameter input (so it will have double encoded values in input params
+ // object, then naturally triple encoded in the URL after a $.param call), however we need
+ // to support any existing uses of the old code, so instead we do a manual encode here. new
+ // code that uses .fetch() will not need to pre-encode the parameter, while old code
+ // can pre-encode it.
+ segment: params.segment ? encodeURIComponent(params.segment as string) : undefined,
}, 'get');
}
if (options.postParams) {