Да, я знаю, о чем вы думаете - еще один вопрос 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);
}
Спасибо заранее!
*
- так что сторона сервера выполняет CORS неправильно - о, и почтальон работает, потому что это не запрос на перекрестное происхождение