最佳答案
是的,我知道你在想什么——又一个 CORS 问题,但这次我被难住了。
首先,实际的错误消息是:
请求不能加载 http://localhost/foo.api/token 响应中的“访问控制-允许-起源”标头的值必须为 当请求的 < strong > 凭据模式为 「包括」因此不能以「 http://localhost:5000」开始 方法发起的请求的凭据模式 XMLHttpRequest 由 withCredentials 属性控制。
我不知道 凭证模式是“包含”是什么意思?
因此,当我在邮递员中执行请求时,我会遇到 没有这样的错误:
但是当我通过 angularjs 网络应用程序访问相同的请求时,我被这个错误难住了。这是我的 angualrjs 请求/响应。正如您将看到的响应是 OK 200
,但是我仍然收到 CORS 错误:
Fiddler 请求和响应:
下图演示了从 Web 前端到 API 的请求和响应
所以基于我在网上看到的其他帖子,我觉得我做的是对的,这就是为什么我不能理解这个错误。最后,下面是我在 angualrjs (登录工厂)中使用的代码:
在 API 中实施 CORS-参考目的:
方法一:
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);
}