访问 CORS 请求的响应标头
Posted
技术标签:
【中文标题】访问 CORS 请求的响应标头【英文标题】:Accessing response headers on CORS request 【发布时间】:2015-11-13 05:47:05 【问题描述】:我正在使用 fetch API 发出类似于下面 sn-p 的跨域请求
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 问题,因为在本地请求中,所有标头都可以访问。
这是设计使然吗?有没有办法解决这个问题?
【问题讨论】:
【参考方案1】:您请求的资源很可能缺少包含 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 响应中被过滤掉的详细信息。
【讨论】:
以上是关于访问 CORS 请求的响应标头的主要内容,如果未能解决你的问题,请参考以下文章
节点 JS - CORS 对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头的值
尽管配置了正确的 CORS 标头,但 301 响应“跨源请求被阻止”
React + ASP.Net Core 3:CORS 对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头
对 CORS 请求的 304 Not Modified 响应是不是应该包含 CORS 标头?