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;
         }