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

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

当请求的响应到达时,有什么方法可以读取响应headers?

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

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

编辑:

我刚刚注意到问题的 iron-ajax 部分。

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

希望对您有所帮助:)

响应事件处理程序作为第二个参数传递给 <iron-request><iron-request> 有一个 xhr property,即用于发出请求的 XMLHttpRequest。您应该能够从中得到响应 headers。

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

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

可以使用XMLHttpRequestgetResponseHeader方法获得特定的响应header。

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

可以使用XMLHttpRequestgetAllResponseHeaders方法获取所有header,这种方法很少使用,因为我们大多不想一次读取所有header .