diff --git a/Changes b/Changes
index 686682b..d479022 100644
--- a/Changes
+++ b/Changes
@@ -1,9 +1,10 @@
-0.2.7 2021-09-07
+0.2.7 2021-10-13
     - Upgrade dependency on Junit following dependabot.
     - Upgrade dependency on Jackson following dependabot.
     - Upgrade dependency on Jetty following dependabot.
     - Setup encoding in pom to make build platform
       independent.
+    - Improve check for defined query.
 
 0.2.6 2021-09-07
     - Fix xml binding for newer java versions.
diff --git a/src/main/resources/assets/export.js b/src/main/resources/assets/export.js
index f9db882..f7206de 100644
--- a/src/main/resources/assets/export.js
+++ b/src/main/resources/assets/export.js
@@ -10,7 +10,7 @@
     },
     function (d) {
       let v = d.value;
-      if (v !== undefined && v["q"]) {
+      if (v !== undefined && v["q"] && v["q"] !== "") {
         let e = v["q"];
         const eq = document.getElementById("export-query");
         
@@ -52,13 +52,23 @@
     
     let field;
     let inputs = form.querySelectorAll("input:not([type=radio]):not([type=checkbox])");
+
+    let queryDefined = false;
+    
     for (let i = 0; i < inputs.length; i++) {
       field = inputs[i];
       if (field.name.length != "" && field.value != "") {
         query.append(field.name, field.value);
+        if (field.name === "q")
+          queryDefined = true;
       }
     };
 
+    if (!queryDefined) {
+      P.log(0, "Query undefined");
+      return false;
+    }
+    
     // Check radio buttons and checkboxes
     inputs = form.querySelectorAll("input[type=radio],input[type=checkbox]");
     for (var i = 0; i < inputs.length; i++) {
@@ -79,7 +89,6 @@
   let relocationURL;
 
   const sse = new EventSource(target, { withCredentials : true });
-  console.log("Credentials: " + sse.withCredentials);
   const prog = document.getElementById('progress');
 
   sse.addEventListener('Progress', function (e) {
