Mam klienta i serwer działający na różnych portach. Na serwerze działa Web API 2 (v5.0.0-rc1).Włącz CORS w Web API 2
Próbowałem zainstalować Microsoft ASP.NET Web API Cross-Origin Support package i włączyć go w WebApiConfig.cs
. Daje mi to funkcję EnableCors()
, więc pakiet został poprawnie zainstalowany.
Tutaj możesz zobaczyć moje Register()
funkcję w WebApiConfig.cs
:
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
}
GET
wnioski działać prawidłowo. Ale podczas wysyłania POST
, pojawia się następujący:
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.
Zdaniem Skrzypka to tylko wysyła żądanie OPTIONS
. Po upływie tego czasu nie wydaje on numeru POST
.
Zgaduję, że config.EnableCors(cors);
w WebApiConfig.cs
nic nie robi, co prowadzi do odmowy klientowi/przeglądarce wysłania zapytania o numer POST
.
Czy masz pojęcie, jak rozwiązać ten problem?
EDIT 09/05/13 ten został naprawiony w wersji 5.0.0-RTM-130905
Dzięki za pytanie i odpowiedź, które zostały naprawione w wersji 5.0.0-rtm. Gdzie mogę uzyskać wersję RTM? – Jaans
'Narzędzia -> Menedżer pakietów bibliotecznych -> Ustawienia menedżera pakietów" i dodaj następujący adres URL w sekcji "Źródła pakietów": http://www.myget.org/F/aspnetwebstacknightly/ – Gaui