小编Rom*_*ois的帖子

AngularJS会忽略HTTP标头中的Set-Cookie

我正在开发一个基于客户端的AngularJS和服务器端的Java for my API(Tomcat + Jersey for WS)的应用程序.

我的API的某些路径受到限制,如果用户没有会话,则返回的响应状态为401.在客户端,拦截401 http状态以将用户重定向到登录页面.

用户通过身份验证后,我会在服务器端创建会话

httpRequest.getSession(true);
并且发送给客户端的响应确实在其标头中有Set-cookie指令:

Set-Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXX; Domain=localhost; Path=/api/; HttpOnly

问题是cookie永远不会放在客户端.当我检查localhost域的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相关的问题吗?

javascript cookies setcookie angularjs

67
推荐指数
5
解决办法
8万
查看次数

标签 统计

angularjs ×1

cookies ×1

javascript ×1

setcookie ×1