http.onreadystatechange = function()

in modules/js/htdocs/component.js [381:425]


            http.onreadystatechange = function() {
                if(http.readyState == 4) {

                    // Pass result if different from local result
                    //debug('readystate', http.readyState, 'status', http.status, 'headers', http.getAllResponseHeaders());
                    if(http.status == 200) {
                        var ct = http.getResponseHeader('Content-Type');
                        if(http.responseText == '' || !ct || ct == '') {

                            // Report empty response
                            error('get received empty response', 'url', u);
                            cb(undefined, new Error('500 No-Content'));
                            return done();

                        } else if(!item || http.responseText != item) {

                            // Store retrieved entry in local storage
                            //debug('received response', 'url', u, 'response', http.responseText);
                            if(http.responseText != null)
                                HTTPBindingClient.setCacheItem(u, http.responseText);
                            cb(http.responseText);
                            return done();
                        }
                    } else if (http.status == 403) {

                        // Redirect to login page
                        error('get received 403 response', 'url', u);
                        var le = new Error('' + http.status + ' ' + http.statusText);
                        if(window.onloginredirect)
                            window.onloginredirect(le);
                        cb(undefined, le);
                        return done();

                    } else if(!http.aborted) {

                        // Pass exception if we didn't have a local result
                        error('get received error', 'url', u, 'status', http.status, http.statusText);
                        if(!item) {
                            cb(undefined, new Error('' + http.status + ' ' + http.statusText));
                            return done();
                        }
                    }
                    return done();
                }
            };