У меня есть приложение api 2 для веб-приложений, которое я вызываю для использования клиента angularjs. Приложение web api способно выдавать токены доступа и обновлять токены для аутентификации.CORS работает для токена доступа, но не для обновления токена в Web Api 2
Имея следующие строки в «GrantResourceOwnersCredentials» метод, то CORS работает отлично для разрешения выдавать маркеры доступа:
var allowedOrigin = context.OwinContext.Get<string>("as:clientAllowedOrigin");
if (allowedOrigin == null) allowedOrigin = "*";
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });
Однако, когда я пытаюсь выдать токены обновления через angularjs приложения, я получаю это хорошая старая ошибка в консоли:
OPTIONS http://localhost:65141/token
(index):1 XMLHttpRequest cannot load http://localhost:65141/token. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:56815' is therefore not allowed access. The response had HTTP status code 400.
мне было интересно, как маркеры доступа выдается в порядке, и токены обновления также выпускаются с использованием той же конечной точки, что я должен сделать, чтобы преодолеть эту проблему?
Кстати, угловой код в порядке. Я отключил безопасность веб-браузера Google Chrome, а потом все сработало! Любая помощь очень ценится!
У меня такая же проблема, но в моем случае я даже не могу получить действительный токен. Несмотря на то что я включил Cors в методе Register() 'WebApiConfig.cs', Chrome продолжает бросать исключение. Поле заголовка запроса Content-Type недопустимо с помощью Access-Control-Allow-Headers в предполетном ответе.'. Однако, если я получаю токен с помощью Fidder, я могу отправить этот токен с запросом браузера на '\ api \ values' - и он работает! –