У меня есть клиент и сервер, работающий на разных портах. Сервер работает Web API 2 (v5.0.0-rc1).
Я попробовал установить пакет поддержки веб-интерфейса Microsoft ASP.NET для нескольких сторон и включил его в WebApiConfig.cs
. Это дает мне функцию EnableCors()
, поэтому пакет был установлен правильно.
Здесь вы можете увидеть мою функцию Register()
в WebApiConfig.cs
:
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
}
GET
запросы работают нормально. Но при отправке POST
я получаю следующее:
OPTIONS http://localhost:19357/api/v1/rooms? 404 (Not Found) angular.js:10159
OPTIONS http://localhost:19357/api/v1/rooms? Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin. angular.js:10159
XMLHttpRequest cannot load http://localhost:19357/api/v1/rooms. Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin.
Согласно Fiddler, он отправляет запрос OPTIONS
. После этого он не выпускает POST
.
Итак, я предполагаю, что config.EnableCors(cors);
в WebApiConfig.cs
ничего не делает, что приводит к тому, что сервер отказывает клиенту/браузеру отправлять запрос POST
.
Есть ли у вас какие-либо идеи, как решить эту проблему?
РЕДАКТИРОВАТЬ 05.09.13 Это было исправлено в 5.0.0-rtm-130905