Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery - get AJAX response headers

How do we get access to the response headers when we fire an ajax request using jQuery? I tried with the below code as per the suggestions given in some sites. But xhr object is coming as null. I see an xhr object in this context. But it doesn't have methods to access response headers.

function SampleMethod() {   var savedThis = this;   this.invokeProcedure = function(procedurePath) {     $.ajax({       type: "GET",       url: procedurePath,       dataType: "json",       success: function(data,status,xhr) savedThis.resultSetHandler(data,status,xhr);}     });   }    this.resultSetHandler=function(data,status,xhrObj){     //Handle the result   }    this.errorHandler = function(args) {     //Handle the result   }  }  var sampleObj = new SampleMethod(); sampleObj.invokeProcedure('url'); 
like image 280
Apps Avatar asked Jul 11 '12 20:07

Apps


People also ask

How do I get a header from Ajax request?

To add a custom header to an individual request then just add the headers property: // Request with custom header $. ajax({ url: 'edureka/co', headers: { 'custom-header': 'some value' } });

What is response header in ajax?

The headers are additional key-value pairs send along with ajax request using the XMLHttpRequest object. An asynchronous HTTP request to the server by using The ajax() function and by including the header it describes to the server what kind of response it accept.

Can JavaScript read response headers?

Can I read response headers in JavaScript? While you can't ready any headers of HTML response in JS, you can read Server-Timing header, and you can pass arbitrary key-value data through it.

What is Ajax success function?

What is AJAX success? AJAX success is a global event. Global events are triggered on the document to call any handlers who may be listening. The ajaxSuccess event is only called if the request is successful. It is essentially a type function that's called when a request proceeds.


2 Answers

For backward compatibility with XMLHttpRequest, a jqXHR object will expose the following properties and methods: getAllResponseHeaders() and getResponseHeader(). From the $.ajax() doc : http://api.jquery.com/jQuery.ajax/

For jQuery > 1.3

success: function(res, status, xhr) {    alert(xhr.getResponseHeader("myHeader")); } 
like image 137
odupont Avatar answered Sep 18 '22 17:09

odupont


FOR JQUERY 3 AND LATER

Here is the solution that worked for me:

//I only created this function as I am making many ajax calls with different urls and appending the result to different divs function makeAjaxCall(requestType, urlTo, resultAreaId){   var jqxhr = $.ajax({     type: requestType,     url: urlTo   });    //this section is executed when the server responds with no error    jqxhr.done(function(){   });    //this section is executed when the server responds with error   jqxhr.fail(function(){   });    //this section is always executed   jqxhr.always(function(){     //here is how to access the response header     console.log("getting header " + jqxhr.getResponseHeader('testHeader'));   }); } 
like image 35
sticky_elbows Avatar answered Sep 21 '22 17:09

sticky_elbows