javascript - 访问 CORS 请求的响应 header

标签 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>

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

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

最佳答案

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

参见 https://fetch.spec.whatwg.org/#http-access-control-expose-headers并查看 https://fetch.spec.whatwg.org/#concept-filtered-response-cors有关从 CORS 响应中过滤掉哪些 header 的详细信息。

关于javascript - 访问 CORS 请求的响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32103768/

相关文章:

javascript - 可以在 Javascript Promise 中调用调试器吗?

javascript - Telerik MVC 网格按需填充

javascript - 以用户体验为中心的 Web 应用程序回归测试的工具和技术?

javascript - JQuery 自动完成显示名称并使用 php 和 mysql 维护 id

javascript - 无法理解如何使用ajax调用启用CORS

javascript - 计算的可观察量未定义

php - JSON_ENCODE 将所有数组值转换为 AJAX 请求中的字符串

ajax - MVC - 使用 Ajax 呈现局部 View

Angular 返回预检 CORS 错误,使用其他工具没有错误

python - 在 CherryPy 中停止请求处理并从工具返回 200 响应