是的,我知道你在想什么 - 又一个 CORS 问题,但这次我被难住了。
因此,首先,实际的错误消息是:
XMLHttpRequest 无法加载http://localhost/Foo.API/token。当请求的凭据模式为 'include'时,响应中 'Access-Control-Allow-Origin' 标头的值不能是通配符 '* '。因此,不允许访问Origin ' http://localhost:5000 '。XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。
我不确定凭证模式是什么意思是“包括”?
所以当我在邮递员中执行请求时,我没有遇到这样的错误:
但是当我通过我的 angularjs Web 应用程序访问相同的请求时,我被这个错误难住了。这是我的 angualrjs 请求/响应。正如您将看到的响应是OK 200
,但我仍然收到 CORS 错误:
Fiddler 请求和响应:
下图展示了Web前端到API的请求和响应
因此,根据我在网上阅读的所有其他帖子,我似乎在做正确的事情,这就是我无法理解错误的原因。最后,这是我在 angualrjs(登录工厂)中使用的代码:
API 中的 CORS 实现 - 参考用途:
使用的方法1:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
EnableCrossSiteRequests(config);
}
private static void EnableCrossSiteRequests(HttpConfiguration config)
{
var cors = new EnableCorsAttribute("*", "*", "*")
{
SupportsCredentials = true
};
config.EnableCors(cors);
}
}
使用的方法2:
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
ConfigureOAuth(app);
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
提前谢谢了!