如何使用 Fetch 从响应标头获取内容类型

Cas*_*dra 3 javascript get response-headers fetch-api

我正在尝试访问content-type从我的GET请求返回的内容,以便我可以决定我想要的预览类型(html可能通过 iframe 进行预览,对于 PDF 可能通过某些查看器进行预览)。问题是,当我执行console.log(response.headers)返回的对象时,其中没有内容类型,但是当我检查网络选项卡时,响应标头具有内容类型:html/text。如何从响应标头获取内容类型?这就是我的 GET 请求的样子

const getFile = async () => {
    var requestOptions = {
      method: "GET",
      headers: context.client_header,
      redirect: "follow",
    };
    let statusID = context.currentStatus.ApplicationID;
    var response = await fetch(
      process.env.REACT_APP_API_ENDPOINT +
        "/services/getStatus?ApplicationID=" +
        statusID,
      requestOptions
    );

    console.log(response.headers);

    if (response.ok) {
      let fileHtml = await response.text();
      setfileURL(fileHtml);
    } else {
      alert.show("Someting went wrong");
    }
  };
Run Code Online (Sandbox Code Playgroud)

Phi*_*hil 7

Headers对象不是一个很好的候选者,console.log()因为它不容易序列化。

如果您想查看其中的所有内容,请尝试通过扩展语法将其分解为条目

console.log(...response.headers)
Run Code Online (Sandbox Code Playgroud)

您可能会发现实际上可以通过以下方式访问您想要的内容

response.headers.get("content-type")
Run Code Online (Sandbox Code Playgroud)

Headers.get()