Node.js 向我的获取请求添加头会导致CORS失败(express)

Node.js 向我的获取请求添加头会导致CORS失败(express),node.js,express,cors,Node.js,Express,Cors,我正在使用库,并且在我的服务器上有以下设置(运行于localhost:8000): cors({ //允许来自这些来源的请求::访问控制允许来源 来源:`http://localhost:8001`, //允许某些头::访问控制允许头 允许的标题:[ “起源”, “X-request-With”, “内容类型”, “接受”, “授权” ], //允许我们跨源发送Cookie::访问控制允许凭据 证书:正确, //允许使用此方法 方法:“获取” }); 当我提出这样的请求时,这很好: fetch

我正在使用库,并且在我的服务器上有以下设置(运行于
localhost:8000
):

cors({
//允许来自这些来源的请求::访问控制允许来源
来源:`http://localhost:8001`,
//允许某些头::访问控制允许头
允许的标题:[
“起源”,
“X-request-With”,
“内容类型”,
“接受”,
“授权”
],
//允许我们跨源发送Cookie::访问控制允许凭据
证书:正确,
//允许使用此方法
方法:“获取”
});
当我提出这样的请求时,这很好:

fetch('http://localhost:8000/api/test“,{方法:'GET',凭据:'include',模式:'cors'})
但是,当我向请求添加头时,控制台中出现CORS错误:

fetch('http://localhost:8000/api/test“,{method:'GET',credentials:'include',mode:'cors',headers:{'Content Type':'application/json'})
我在Chrome中遇到的错误是:

Access to fetch at 'http://localhost:8000/api/test' from origin 'http://localhost:8001' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
唯一的区别是我添加了一个
内容类型
标题,但我希望它能起作用,因为它在我的
允许标题列表中

  origin: `http:localhost:3001`,
这似乎是错误的,缺少反斜杠(//)。否则,您的示例看起来不错,如果我用您的示例创建一个简单的服务器,它就会工作


如果仍不起作用,您可以尝试清除缓存。github中存在问题:

您的服务器似乎未配置为处理选项请求。请尝试将
app.OPTIONS('*',cors())
添加到您的代码中。请参阅Cheers上的文档-很高兴您的操作正常