使用iron-ajax,如何读取响应的标题?

时间:2015-06-12 05:08:13

标签: javascript ajax polymer polymer-1.0

当请求的响应到来时,有没有办法读取响应头?

3 个答案:

答案 0 :(得分:11)

响应事件处理程序作为第二个参数传递<iron-request><iron-request>的{​​{3}}是用于发出请求的XMLHttpRequest。您应该可以从中获取响应标头。

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

答案 1 :(得分:6)

如果在javascript中通过AJAX发出HTTP请求,则可以使用getAllResponseHeaders()方法获取响应头。它是XMLHttpRequest API的一部分。

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

修改

我刚刚注意到了铁问题的一部分。

<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)
  }

希望有所帮助:)

答案 2 :(得分:0)

Trevor Dixon's answer中所述,iron-ajax在响应处理程序中提供iron-request对象,该对象将XMLHttpRequest作为xhr属性公开。

可以使用XMLHttpRequest的{​​{3}}方法获得特定的响应头。

  

ironRequest.xhr.getResponseHeader('标题名称');

可以使用XMLHttpRequest的{​​{3}}方法获得所有标头,该方法很少使用,因为我们通常不希望一次读取所有标头。