diff --git a/resources/assets/javascripts/lib/abstract-api.js b/resources/assets/javascripts/lib/abstract-api.js index 8e33e22d8a74e676b0cd70f581042a24b5db6d30..eafca85f1252783eaf55ada6340168116d958b83 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 bcd954f201cafa9fe0270b2f3304aea8fe56582b..f3217bc6e6e50cd3ed17763600e364dc4333ad63 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; }