C# Web API 2启用CORS抛出访问控制允许源错误

C# Web API 2启用CORS抛出访问控制允许源错误,c#,cors,asp.net-web-api2,C#,Cors,Asp.net Web Api2,我的问题与我为cors和set安装nuget包的地方相同 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 在我的api配置中,但它仍然阻止从我的开发服务器(我调用api的地方)访问我的测试服务器(部署api的地方) 我已经将web api 2的nuget包更新为2.2的最新版本,但这也没有解决问题 我得到的错误是: 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origi

我的问题与我为cors和set安装nuget包的地方相同

config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
在我的api配置中,但它仍然阻止从我的开发服务器(我调用api的地方)访问我的测试服务器(部署api的地方)

我已经将web api 2的nuget包更新为2.2的最新版本,但这也没有解决问题

我得到的错误是:

无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”


这里缺少什么吗?

我以前遇到过这个问题,它很可能来自客户端请求。如果您正在使用jQuery(请不要),通常应该出现
crossDomain:true
。我会先尝试来自
fiddler
的相同请求,看看您是否仍然收到相同的错误

许多浏览器(包括chrome浏览器)都不喜欢
源文件的通配符
*

config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
应替换为:

config.EnableCors(new EnableCorsAttribute("http://www.clientURL.com", "*", "*"));

如果您需要多个网站,origins参数将接受一个带有逗号分隔值的字符串。

您是否有一个示例,说明如何在不使用jQuery的情况下执行请求我假设您的api位于
http://www.example.com/api/MyController
,当您发出相同的
POST
GET
请求时会发生什么情况?您是否看到相同的消息?这意味着您没有触及API的端点。这与CORS无关,请确保您在控制器中调用了正确的方法,并且为该操作启用了http方法。e、 g.向
http://www.example.com/api/mycontroller/myaction
应该在
myaction
方法的顶部添加
[HttpGet]
。啊,就是这样-我忘了将url添加到实际操作中,d'uh。这是其中的一天。感谢star实际上为我工作,使用网站列表会有点反直觉,因为这是一个api,我们的许多附属公司都可以调用。我不想在每次添加或删除分支机构时添加或删除url并重新部署api