Я реализовал аутентификацию на основе токенов OWIN на своем WebApi, я также включил CORS, вызвав app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll)
Я могу получить доступ к различным незащищенным частям моего приложения из веб-клиента angularjs. Я использовал этот http-перехватчик, когда я пытаюсь получить доступ к защищенному ресурсу, я получаю свой логин.
Теперь, чтобы войти в систему, я должен позвонить http://mywebapi/token
с формой, закодированной в UserName Password и grant_type, см. мою подпись ниже (от chrome)
Request URL:http://mywebapi/token
Request Headers CAUTION: Provisional headers are shown.
Accept:application/json, text/plain, */*
cache:false
Content-Type:application/x-www-form-urlencoded
Origin:http://127.0.0.1:49408
Referer:http://127.0.0.1:49408/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Form Dataview sourceview URL encoded
grant_type:password
UserName:correctuser
Password:Password
Когда я использую почтальон для отправки этого запроса, он возвращается с ожидаемым accesstoken, однако, когда я пытаюсь использовать службу angular $http, он делает запрос OPTIONS (я вижу это в консоли инструментов Dev), но по какой-то причине я получаю это сообщение об ошибке
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:49408' is therefore not allowed access.
ПРИМЕЧАНИЕ. Это происходит только для запроса /token, который кодируется форму-url, для всех других json-запросов заголовок добавляется как ожидается. Кто-то может помочь, у меня заканчиваются идеи.
Спасибо