访问CORS请求的响应头

Accessing response headers on CORS request

本文关键字:响应 请求 CORS 访问      更新时间:2023-09-26

我正在使用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>

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

这是故意的吗?有办法解决这个问题吗?

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

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