diff options
Diffstat (limited to 'assets/js/core')
-rw-r--r-- | assets/js/core/http.js | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/assets/js/core/http.js b/assets/js/core/http.js index 3e02a4d7..5c669f63 100644 --- a/assets/js/core/http.js +++ b/assets/js/core/http.js @@ -1,5 +1,7 @@ KB.http.request = function (method, url, headers, body) { var successCallback = function() {}; + var authErrorCallback = function() {}; + var netErrorCallback = function() {}; var errorCallback = function() {}; function parseResponse(request) { @@ -42,10 +44,22 @@ KB.http.request = function (method, url, headers, body) { if (request.readyState === XMLHttpRequest.DONE) { var response = parseResponse(request); - if (request.status === 200) { - successCallback(response); - } else { - errorCallback(response); + // errorCallback still gets called for compatibility + switch (request.status) { + case 200: + successCallback(response); + return; + case 401: + authErrorCallback(response); + errorCallback(response); + break; + case 0: + netErrorCallback(response); + errorCallback(response); + break; + default: + errorCallback(response); + break; } } }; @@ -59,6 +73,17 @@ KB.http.request = function (method, url, headers, body) { return this; }; + this.authError = function (callback) { + authErrorCallback = callback; + return this; + }; + + this.netError = function (callback) { + netErrorCallback = callback; + return this; + }; + + // deprecated this.error = function (callback) { errorCallback = callback; return this; |