Я пытаюсь настроить Web.API для CORS. Метод GET успешно работает, но не PUT по какой-то причине.
Не удалось загрузить https://localhost:44399/api/Person/032342:
Ответ на предполетный запрос не проходит проверку контроля доступа: Нет
Заголовок «Access-Control-Allow-Origin» присутствует в запрошенном
ресурс. Происхождение 'https://localhost:44300' поэтому не допускается
доступ. Ответ имеет HTTP-код состояния 404.
У меня есть следующий код в WebApiConfig.cs
config.MessageHandlers.Add(new CorsHandler());
Если я добавлю строку
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
Я получу следующую ошибку
Не удалось загрузить
https://localhost:44399/api/Person/032342:
Заголовок 'Access-Control-Allow-Origin' содержит несколько значений '*,
https://localhost:44300', но разрешен только один. происхождения
'https://localhost:44300', поэтому запрещен доступ.
Я пытался следовать предложениям, но безуспешно:
Заголовок 'Access-Control-Allow-Origin' содержит несколько значений
Есть идеи, почему он жалуется на множественные значения?
Я также попытался включить следующее в Global.asax.cs, но безуспешно.
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, HEAD,OPTIONS,POST,PUT");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization, useXDomain");
HttpContext.Current.Response.End();
//HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
//HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
}
}