Allan Hasegawa
Allan Hasegawa

Reputation: 1008

With iron-ajax, how to read the headers of a response?

When a response for a request arrives, is there any way to read the response headers?

Upvotes: 10

Views: 5745

Answers (3)

Abdul Rauf
Abdul Rauf

Reputation: 6221

As mentioned in Trevor Dixon's answer, iron-ajax provides iron-request object in response handler which exposes XMLHttpRequest as xhr property.

A specific response header can be obtained using getResponseHeader method of XMLHttpRequest.

ironRequest.xhr.getResponseHeader('header name');

All headers can be obtained using getAllResponseHeaders method of XMLHttpRequest which is rarely used since we mostly don't want to read all headers at once.

Upvotes: 0

Trevor Dixon
Trevor Dixon

Reputation: 24352

The response event handlers gets passed the <iron-request> as the second argument. <iron-request> has an xhr property that is the XMLHttpRequest used to make the request. You should be able to get the response headers from that.

<iron-ajax on-response="ajaxResponse"></iron-ajax>
...
ajaxResponse: function(e, request) {
  var headers = request.xhr.getAllResponseHeaders();
}

Upvotes: 11

nalinc
nalinc

Reputation: 7425

If an HTTP request is made over AJAX in javascript, it is possible to get the response headers with the getAllResponseHeaders() method. It's part of the XMLHttpRequest API.

var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
alert(headers);

EDIT:

I just noticed the iron-ajax part of question.

<iron-ajax
    url="http://gdata.youtube.com/feeds/api/videos/"
    params='{"alt":"json", "q":"chrome"}'
    handle-as="json"
    on-response="handleResponse"
    debounce-duration="300">
</iron-ajax>
    ...
handleResponse: function(e, request) {
    var headers = request.xhr.getAllResponseHeaders();
    alert(headers)
  }

Hope it helps :)

Upvotes: 6

Related Questions