aboutsummaryrefslogtreecommitdiffstats
path: root/fg21sim/webui/static
diff options
context:
space:
mode:
authorAaron LI <aaronly.me@outlook.com>2016-11-18 12:50:12 +0800
committerAaron LI <aaronly.me@outlook.com>2016-11-18 12:50:12 +0800
commit5805759c264adf96e9feea78a3cd3bfc2871b1de (patch)
treedb39479e71018ef18613b10e62af8cc816d63af0 /fg21sim/webui/static
parent2abadd1a0fc88b9ac16533a994353b3cb7449451 (diff)
downloadfg21sim-5805759c264adf96e9feea78a3cd3bfc2871b1de.tar.bz2
webui: Redirect to login page if not authenticated on POST request
* Remove the authentication requirement on GET operation * "main.js": Redirect to the login page if POST response 403 forbidden * "main.js": Use global AJAX events handling instead of `$.ajaxSetup()`
Diffstat (limited to 'fg21sim/webui/static')
-rw-r--r--fg21sim/webui/static/js/main.js18
1 files changed, 13 insertions, 5 deletions
diff --git a/fg21sim/webui/static/js/main.js b/fg21sim/webui/static/js/main.js
index 27638a7..64b65c1 100644
--- a/fg21sim/webui/static/js/main.js
+++ b/fg21sim/webui/static/js/main.js
@@ -9,12 +9,19 @@
/**
- * jQuery settings
+ * jQuery AJAX global callbacks using the global AJAX event handler methods
+ *
+ * NOTE:
+ * It is NOT recommended to use `jQuery.ajaxSetup` which will affect ALL calls
+ * to `jQuery.ajax` or AJAX-based derivatives.
*/
-jQuery.ajaxSetup({
- error: function (error) {
- console.error("AJAX request failed: code:", error.status,
- ", reason:", error.statusText); }
+$(document).ajaxError(function (event, jqxhr, settings, exception) {
+ console.error("AJAX request failed: code:", jqxhr.status,
+ ", reason:", jqxhr.statusText);
+ if (jqxhr.status === 403) {
+ // Forbidden error: redirect to login page
+ window.location.href = "/login";
+ }
});
@@ -37,6 +44,7 @@ var getCookie = function (name) {
return m ? m[1] : undefined;
};
+
/**
* jQuery extension for easier AJAX JSON post
*