3

我正在使用 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 问题,因为在本地请求中,所有标头都可以访问。

这是设计使然吗?有没有办法解决这个问题?

4

1 回答 1

6

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

有关详细信息,请参阅https://fetch.spec.whatwg.org/#http-access-control-expose-headers并参阅https://fetch.spec.whatwg.org/#concept-filtered-response-cors标头会从 CORS 响应中过滤掉。

于 2015-08-28T02:05:13.840 回答