volkov_p_v
@volkov_p_v
FrontEnd разработчик

Почему метод OPTIONS просит авторизацию и как это обойти?

Клиент написан на angular.js.
Сервисы находятся на другом домене и в них прописаны заголовки
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization

Для получения токена проходит POST запрос. Но для получения данных с начало отправляется OPTIONS.
Сервер от метода OPTIONS просит заголовок Authorization с токеном, но т.к. его там нет он отдает 401 ответ и дальнейшие запросы не проходят.
В чем может быть проблема?
Как убрать OPTIONS или как вместе с OPTIONS отправлять заголовок Authorization с токеном?
  • Вопрос задан
  • 1039 просмотров
Пригласить эксперта
Ответы на вопрос 3
AMar4enko
@AMar4enko
Preflight request при кроссдоменных запросах убрать нельзя. На сервере выведите методы OPTIONS из-под авторизации.
Ответ написан
Комментировать
@MNB
$httpProvider.withCredentials = true; установлено?
Ответ написан
Кросс-доменный запрос. В .htaccess пропишите:
<ifmodule mod_headers.c>
  Header always set Access-Control-Allow-Origin: "*"
  Header always set Access-Control-Allow-Methods "POST, GET, PUT, DELETE, OPTIONS"
  Header always set Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With"
  Header always set Access-Control-Allow-Credentials "true"
</ifModule>

Access-Control-Allow-Headers и Access-Control-Allow-Methods настройте под себя
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы