diff options
author | dizzy <diosmosis@users.noreply.github.com> | 2022-02-24 23:01:55 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-24 23:01:55 +0300 |
commit | 7b09d5edaeda5b31d0a00a041a87463edc9da635 (patch) | |
tree | 55d52b2ac5f033913b7235c3c7373fc2aa160be5 /plugins/CoreHome/vue/src | |
parent | bffce0bd85a011bbfd34e06117168690d18fb85d (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.ts | 8 |
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) { |