javascript - fetchAPI 的 header 对象始终为空

标签 javascript rest ecmascript-6

我有这个请求函数,它是获取 API 的包装器,用于向我的 API 发出请求。但是当我的前端应用发出请求时,headers 对象总是空的。我做错了什么?

export function request(method, url, payload) {
  const body = JSON.stringify(payload);
  const headers = new Headers();
  headers.append('Content-Type', 'application/json');
  const parameters = {
    headers: headers,
    method: method,
    body: body,
    cache: "default"
  };
  return Observable.create(observer => {
    fetch(url, parameters)
      .then(response => {
        observer.next(response);
        observer.complete();
      })
      .catch(error => {
        observer.error(error);
      });
  });
}

最佳答案

如果 header 真的丢失了,您是否检查过 DevTools 的网络选项卡?

我遇到的问题与你描述的一样,我的 Header 对象在 Chrome DevTools 中似乎总是空的,但是如果尝试检查特定的 header ,比如

let headers = new Headers({'X-whatever-name': 'whatever-value'});
myHeader.has('X-whatever-name'); // returns true

此外,如果我在 DevTools(网络选项卡)中检查请求 header 的详细信息,我可以看到我的自定义 header 已正确发送。

所以只有 JS api (entries, keys, ...) 对我来说似乎坏了,但请求已正确发送。

关于javascript - fetchAPI 的 header 对象始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56718772/

相关文章:

java - Jersey 2.0客户端文件上传失败

javascript - 如何在传奇中使用警报,暂停它,并且仅在按下按钮时才继续?

javascript - 如何完善这个 JS 数组搜索功能?

javascript - emscripten + sdl = 抛出异常 : TypeError: cannot set property 'widthNative' of undefined

javascript - 如何将(调试与发布)args 传递给 Asp.Net MVC 中的 Aurelia 应用程序

java - 通过名称调用服务时,服务因空指针而失败,而在调用休息时则正常工作

ios - Xamarin iOS ModernHttpClient Owin OAuth2 Bearer Token Authentication DefaultHeader 导致 "System.Net.WebException: cannot parse response"

javascript - 如何访问内部生成器函数内部的父类(super class)方法?

javascript - 何时使用 `parent` 以及何时使用 `root` 作为 GraphQL 解析器函数中的第一个参数

javascript - javascript的绝对文件路径