在Chrome中,如何知道“ access-control-expose-headers”标头是否存在?

时间:2018-12-18 14:00:34

标签: javascript google-chrome cors

我想知道一种仅使用纯Javascript来找出access-control-expose-headers是否存在的方法。

用例是:我在JS中有一个演示应用程序,您可以在其中选择多个服务器,测试服务器返回一些调试信息,并且该演示程序希望显示调试信息(如果可用)。但是尝试读取access-control-expose-headers标头以查看是否可以读取Chrome中公开的标头会导致控制台错误。鸡蛋问题?

1 个答案:

答案 0 :(得分:0)

将尝试读取它们的代码包装在异常处理程序中。

const url = "https://cors-anywhere.herokuapp.com/http://example.com";
const xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.addEventListener("load", () => {
  let header;
  try {
    header = xhr.getResponseHeader('access-control-expose-headers');
  } catch (e) {
    console.log("There was an error: ", e);
  }

  if (header) {
    console.log("Header successfully read", header);
  } else {
    console.log("Could not read header or header does not exist");
  }
});
xhr.send();