Access-Control-Allow-Origin WebAPI 项目响应中缺少 header

Access-Control-Allow-Origin missing in WebAPI projects response header

我有两个 .NET Framework 4.6.2 WebAPI 项目。 两者都在使用 Microsoft.AspNet.WebApi.Cors v5.2.7. 两者都在 WebApiConfig.cs 文件

中启用了 Cors
  var cors = new EnableCorsAttribute("http://localhost:3725", "*", "*");
  config.EnableCors(cors);

如果我在 WebApiConfig.cs 中设置断点,我会看到 Cors 已在两个项目中启用。

使用我的 localhost:3725 客户端访问其中一个 WebAPI 工作正常,访问另一个会抛出 been blocked by Cors error

jquery-3.3.1.js:9600 OPTIONS http://localhost:54739/logging/Performance 404 (Not Found) send @ jquery-3.3.1.js:9600 ajax @ jquery-3.3.1.js:9206 perfLoggerStop @ flogging.js:46 (anonymous) @ JsTodos:106 fire @ jquery-3.3.1.js:3268 fireWith @ jquery-3.3.1.js:3398 done @ jquery-3.3.1.js:9305 (anonymous) @ jquery-3.3.1.js:9548 load (async) send @ jquery-3.3.1.js:9567 ajax @ jquery-3.3.1.js:9206 getAllTodos @ JsTodos:100 onclick @ JsTodos:44 JsTodos:1 Access to XMLHttpRequest at 'http://localhost:54739/logging/Performance' from origin 'http://localhost:3725' 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.

如果我检查 Fiddler 中两个 WebAPI 的响应 Headers,工作的一个包含:
Access-Control-Allow-Origin: http://localhost:3725

失败的 WebApi localhost:54739 的响应 header 中缺少此内容,localhost:54739

我以相同的方式构建了两个项目,并且具有相同的 NuGet 包版本。

有谁知道问题的根源是什么,或者我该如何进一步解决问题?

问题最终是我的 route 设置出错了。我不知道为什么会抛出 CORS 错误而不是 Not Found 错误。请注意,这可能会发生,掩盖潜在的错误并让您走上错误的切线,试图追踪 CORS 错误的来源,即使 CORS 已正确配置并正常工作。