Question

I am using Kango framework to develop a cross-browser addon, using the following code I am making HEAD request's utilizing Kango.XHR which is getting successfully executed (as shown in HTTP DEBUGGER) and the code below in my background script also returns data.status == 200.

function doXHR(url) {
var details = {
    method: 'HEAD',
    url: url,
    async: true
};


kango.xhr.send(details, function(data) {
    if (data.status == 200) {
        kango.console.log(data.status);
    }
    else { // something went wrong
        kango.console.log('something went wrong');
    }
});
};

Now, I want to get the value of Content-Length response header from the above but have no clue how to do that?

Was it helpful?

Solution

Ordinarily, you can read response headers with xhr.getReponseHeader. Depending on how Kango works, that method may already be available on your data object.

If data.getReponseHeader("Content-Length") doesn't work, then instead of using kngo.xhr.send, you might try imitating a normal Ajax call with kango.getXMLHttpRequest:

var request = kango.xhr.getXMLHttpRequest();
request.open('HEAD', url);
request.send(null);
request.onload = function() {
    if(request.status == 200) {
        console.log(request.getResponseHeader("Content-Length"));
        console.log(request.responseText);
    }
}
request.onerror = function() {
    console.log("something went wrong");
}

Again, depending on how Kango operates under the hood, your server might need to serve an Access-Control-Expose-Headers response header to allow the client to read it. This won't likely be necessary, since extension code usually is not bound by the same origin policy, but I offer it only to help you iron out any possible inconsistencies in Kango's cross-platform API.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top