Да, я знаю, что вы думаете - еще один вопрос CORS, но на этот раз я в тупике.
Итак, для начала, фактическое сообщение об ошибке:
XMLHttpRequest не может загрузить http://localhost/Foo.API/token. Значение заголовка "Access-Control-Allow-Origin" в ответе не должно быть подстановочным знаком "*", если режим учетных данных запроса "включить". Источник ' http://localhost: 5000 ', следовательно, не имеет доступа. Режим учетных данных запросов, инициируемых XMLHttpRequest, управляется атрибутом withCredentials.
Я не уверен, что подразумевается под режимом учетных данных "включить"?
Поэтому, когда я выполняю запрос в почтальоне, я не вижу такой ошибки:
Но когда я получаю доступ к тому же запросу через мое веб-приложение angularjs, я озадачен этой ошибкой. Вот мой запрос/ответ angualrjs. Как вы увидите, ответ OK 200
, но я все еще получаю сообщение об ошибке CORS:
Fiddler Запрос и ответ:
На следующем рисунке показан запрос и ответ от веб-интерфейса к API
На основании всех других постов, которые я читал в Интернете, кажется, что я поступаю правильно, поэтому я не могу понять ошибку. И наконец, вот код, который я использую в angualrjs (фабрика входа):
Реализация CORS в API. Справочные цели:
Метод 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);
}
Спасибо заранее!