How to get jQuery.ajax response status?

Viewed 16084

Is there any way to know if the jqXHR object returned was redirected from another request? For example, having the following code:

   jQuery.ajax({
            type:       'POST',
            url:        'http://example.com/page.html',
            complete:   function(response, status) {
                        console.log(response.statusCode);
                        // do something
                        }
        });

If the ajax url is redirected with a 301 or 302 status code, the response will be the result of the redirected page and will return a 200 (OK) status code. I think this is a jQuery's bug (don't really know if this is the intended beheavior, since the ultimate response was actually succesful) I can't either get the original response Headers to check if there exists a Location Header, since this is only available on redirected requests.

Firebug with the above code logs these two requests through XHR

http://example.com/page.html 302 (Moved temporarily) http://example.com/redirect.html 200 (OK)

But jQuery only return data from the second request.

Maybe there is a way to get data from the first request? Or to get the response url and compare it with the one from the original request?

2 Answers
Related