From 412dbe0d375a3dcce2758858af30e57a6423f675 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Thu, 12 May 2022 06:35:39 +0000 Subject: [PATCH] fix encoding of data passed to STUDIP.jsonapi request methods, fixes #984 Closes #984 Merge request studip/studip!566 --- resources/assets/javascripts/lib/abstract-api.js | 4 ++-- resources/assets/javascripts/lib/jsonapi.js | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/resources/assets/javascripts/lib/abstract-api.js b/resources/assets/javascripts/lib/abstract-api.js index 4239118b876..e991d62a386 100644 --- a/resources/assets/javascripts/lib/abstract-api.js +++ b/resources/assets/javascripts/lib/abstract-api.js @@ -30,7 +30,7 @@ class AbstractAPI this.base_url = base_url; } - encodeData (data) { + encodeData (data, method) { if (data instanceof Function) { data = data(); } @@ -76,7 +76,7 @@ class AbstractAPI deferred = $.ajax(STUDIP.URLHelper.getURL(`${this.base_url}/${url}`, {}, true), { contentType: options.contentType || 'application/x-www-form-urlencoded; charset=UTF-8', method: options.method.toUpperCase(), - data: this.encodeData(options.data), + data: this.encodeData(options.data, options.method.toUpperCase()), headers: options.headers }).always(() => { // Decrease request counter, remove overlay if neccessary diff --git a/resources/assets/javascripts/lib/jsonapi.js b/resources/assets/javascripts/lib/jsonapi.js index bcd954f201c..f3217bc6e6e 100644 --- a/resources/assets/javascripts/lib/jsonapi.js +++ b/resources/assets/javascripts/lib/jsonapi.js @@ -7,9 +7,13 @@ class JSONAPI extends AbstractAPI super(`jsonapi.php/v${version}`); } - encodeData (data) { + encodeData (data, method) { data = super.encodeData(data); + if (['DELETE', 'GET', 'HEAD'].includes(method)) { + return data; + } + if (Object.keys(data).length === 0) { return null; } -- GitLab