我的API中有一些路径是受限制的,如果用户没有会话,则返回401状态码。在客户端,拦截401 HTTP状态码并将用户重定向到登录页面。
一旦用户被验证,我在服务器端创建一个会话:
httpRequest.getSession(true);并且响应发送到客户端的头部包含Set-cookie指令:
Set-Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXX; Domain=localhost; Path=/api/; HttpOnly问题是cookie从未放在客户端上。当我检查本地主机域的cookie时,它是空的,因此下一个请求的头部中没有这个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相关问题吗?