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

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

本文关键字:响应 读取 iron-ajax 何读取 使用      更新时间:2023-09-26

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

响应事件处理程序作为第二个参数传递<iron-request><iron-request>有一个xhr属性,该属性是用于发出请求的XMLHttpRequest。您应该能够从中获取响应标头。

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

如果在 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)
  }

希望对:)有所帮助

正如Trevor Dixon的回答中提到的,iron-ajax在响应处理程序中提供了iron-request对象,该对象将XMLHttpRequest公开为xhr属性。

可以使用 XMLHttpRequest 的 getResponseHeader 方法获取特定的响应标头。

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

所有标头都可以使用 getAllResponseHeaders 方法获取XMLHttpRequest该方法很少使用,因为我们大多不想一次读取所有标头。