我正在基于客户端的AngularJS和基于Java的服务器的Java(Tomcat + WS的Jersey)开发应用程序。
我的API的某些路径受到限制,如果用户没有会话,则返回的响应状态为401。在客户端,将拦截401 http状态以将用户重定向到登录页面。
用户通过身份验证后,我将在服务器端创建一个会话
httpRequest.getSession(true);并且发送给客户端的响应的标头中确实包含Set-cookie指令:
Set-Cookie:JSESSIONID = XXXXXXXXXXXXXXXXXXXXX; 域=本地主机; 路径= / api /; HttpOnly
问题是cookie永远不会放在客户端。当我检查本地域的cookie时,它为空,因此下一个请求的标头中没有此cookie,并且客户端仍然无法访问我的API的受限路径。
客户端和服务器位于同一个域中,但是它们没有相同的路径和端口号:
客户: http://localhost:8000/app/index.html
服务器: http://localhost:8080/api/restricted/
附加信息:双方都启用了CORS:
“访问控制允许方法”,“获取,发布,选项” “访问控制允许来源”,“ *” “访问控制允许凭据”,true
有任何使Set-cookie正常工作的想法吗?这是与AngularJS相关的问题吗?