Set-Cookie в заголовке HTTP игнорируется AngularJS
Я работаю над приложением, основанным на AngularJS на стороне клиента и Java для моего API (Tomcat + Jersey для WS) на стороне сервера.
Некоторые пути моего API ограничены, если у пользователя нет сеанса, возвращается статус ответа 401. На стороне клиента 401 статус http перехватывается, чтобы перенаправить пользователя на страницу входа.
После аутентификации пользователя я создаю сеанс на стороне сервера.
httpRequest.getSession(true);и ответ, отправленный клиенту, имеет в своем заголовке инструкцию Set-cookie:
Set-Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXX; Domain=localhost; Path=/api/; HttpOnly
Проблема в том, что куки никогда не помещаются на стороне клиента. Когда я проверяю файл cookie для домена localhost, он пуст, поэтому в следующих запросах этот файл cookie не содержится в заголовке, и клиентская сторона все еще не может получить доступ к ограниченному пути моего API.
Клиент и сервер находятся в одном домене, но у них не одинаковый путь и номер порта:
Клиент:http://localhost:8000/app/index.html
Сервер:http://localhost:8080/api/restricted/
Дополнительная информация: CORS включен с обеих сторон:
"Access-Control-Allow-Methods", "GET, POST, OPTIONS" "Access-Control-Allow-Origin", "*" "Access-Control-Allow-Credentials", true
Любая идея сделать Set-cookie работает правильно? Это проблема AngularJS?