CORS:凭据模式为“包含”
是的,我知道你在想什么 - 另一个CORS问题,但这次我感到困惑。
因此,首先,实际的错误消息:
XMLHttpRequest 无法加载 http://localhost/Foo.API/token。当请求的凭据模式为“include”时,响应中的“访问控制-允许-源”标头的值不得为通配符“*”。因此,不允许访问源“http://localhost:5000”。由 XMLHttpRequest 发起的请求的凭据模式由 withCredentials 属性控制。
我不确定凭据模式的含义是“包含”?
因此,当我在postman中执行请求时,我没有遇到这样的错误:
但是当我通过我的angularjs Web应用程序访问相同的请求时,我被这个错误所困扰。这是我的angualrjs请求/响应。如您所见,响应是 ,但我仍然收到 CORS 错误:OK 200
小提琴手请求和响应:
下图演示了从 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);
}