Так, я знаю, про що ти думаєш - ще одне запитання CORS, але цього разу я обдурений.
Отже, для початку, власне повідомлення про помилку:
XMLHttpRequest не може завантажити http: //localhost/Foo.API/token . Значення заголовка 'Access-Control-Allow-Origin' у відповіді не повинно бути символом підстановки '*', коли режим облікових даних запиту має значення "включати" . Отже, до джерела ' http: // localhost: 5000 ' заборонено доступ. Режим облікових даних запитів, ініційованих XMLHttpRequest, контролюється атрибутом withCredentials.
Я не впевнений, що мається на увазі під режимом облікових даних - "включати" ?
Тому, коли я виконую запит у листоноші, у мене не виникає такої помилки:
Але коли я отримую доступ до того самого запиту через свою веб-програму angularjs, ця помилка мене вражає. Ось мій запит / відповідь angualrjs. Як ви побачите, відповідь є OK 200
, але я все одно отримую помилку CORS:
Запит скрипта та відповідь:
Наступне зображення демонструє запит та відповідь веб-інтерфейсу на 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 неправильно - о, і листоноша працює, тому що це не запит про перехресне походження