【发布时间】:2019-02-08 08:02:25
【问题描述】:
我有两个 .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 的响应标头,工作的一个包含:Access-Control-Allow-Origin: http://localhost:3725
失败的 WebApi 的响应标头中缺少此内容,localhost:54739。
我以相同的方式构建了两个项目,并且拥有相同版本的 NuGet 包。
有谁知道问题的根源或我如何进一步排除故障?
【问题讨论】:
标签: cors asp.net-web-api2