访问CORS请求的响应头

时间:2015-08-19 19:12:04

标签: javascript ajax cors fetch-api

我使用fetch API制作类似于以下代码段的跨域请求



window.fetch('http://data.test.wikibus.org/magazines', { method: 'get'})
      .then(function(response) { 
        var linkHeader = response.headers.get('Link');
        document.querySelector('#link-header').innerText = 'The Link header is: ' + linkHeader;
      });

<span id="link-header"></span>
&#13;
&#13;
&#13;

如您所见,虽然在响应中返回了Link标头(以及其他一些标头),但仍无法访问它。我认为这是一个CORS问题,因为在本地请求中所有标头都是可访问的。

这是设计吗?有没有解决这个问题的方法?

1 个答案:

答案 0 :(得分:6)

您请求的资源很可能缺少包含Access-Control-Expose-Headers的{​​{1}}标头作为值。

请参阅https://fetch.spec.whatwg.org/#http-access-control-expose-headers并查看https://fetch.spec.whatwg.org/#concept-filtered-response-cors,了解哪些标头从CORS响应中过滤掉的详细信息。