Tôi đang làm việc trên một ứng dụng dựa trên AngularJS ở phía máy khách và Java cho API của tôi (Tomcat + Jersey cho WS) ở phía máy chủ.Đặt cookie trong tiêu đề HTTP bị bỏ qua với AngularJS
Một số đường dẫn API của tôi bị hạn chế, nếu người dùng không có phiên, trạng thái trả lời là 401. Về phía máy khách, trạng thái 401 http bị chặn để chuyển hướng người dùng đến trang đăng nhập.
Khi người dùng được xác thực, tôi tạo ra một phiên họp về phía máy chủ
httpRequest.getSession(true);và đáp ứng gửi cho khách hàng không có hướng dẫn Set-cookie trong phần đầu của nó:
Set-Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXX; Domain=localhost; Path=/api/; HttpOnly
Vấn đề là các cookie không bao giờ được đặt ở phía khách hàng. Khi tôi kiểm tra cookie cho miền localhost, nó sẽ trống, vì vậy các yêu cầu tiếp theo không có cookie này trong tiêu đề và phía máy khách của họ vẫn không thể truy cập vào đường dẫn bị hạn chế của API của tôi.
Client và máy chủ đang ở trên cùng một tên miền nhưng họ không có con đường cùng và số cổng tương tự:
Chủ đầu tư: http://localhost:8000/app/index.html
Server: http://localhost:8080/api/restricted/
Thông tin thêm: CORS được bật ở cả hai bên:
"Access-Control-Allow-Methods", "GET, POST, OPTIONS" "Access-Control-Allow-Origin", "*" "Access-Control-Allow-Credentials", true
Bất kỳ ý tưởng nào để đặt cookie thiết lập hoạt động bình thường? Đây có phải là vấn đề liên quan đến AngularJS không?
Tôi không chắc nó vẫn có liên quan nhưng làm cho API của bạn dựa vào các trạng thái là một lựa chọn thiết kế tồi (tm). Bạn nên làm cho trạng thái API của bạn để tránh các vấn đề trong tương lai. – sberder
Bạn có tìm thấy giải pháp cho điều này không? Tôi lại không phải vấn đề tương tự. – Pathsofdesign