是这样的,我用angularjs做一个登录界面,然后登录之后需要跳转主界面,这个主界面向后端发起的操作都必须有这个用户登录的标记,即sessionid,但是由于我的登录界面和主界面是两个界面,所以主界面向后端发起的操作都报401错误,也就是未登录。请问怎么处理这种情况?
后端传过来的sessionid是保存在cookie中的,如图:
我在angularjs中使用$cookies.JSESSIONID是undefined,这个不知道怎么回事?
其次,获取到之后又如何传给主界面呢?
是这样的,我用angularjs做一个登录界面,然后登录之后需要跳转主界面,这个主界面向后端发起的操作都必须有这个用户登录的标记,即sessionid,但是由于我的登录界面和主界面是两个界面,所以主界面向后端发起的操作都报401错误,也就是未登录。请问怎么处理这种情况?
后端传过来的sessionid是保存在cookie中的,如图:
我在angularjs中使用$cookies.JSESSIONID是undefined,这个不知道怎么回事?
其次,获取到之后又如何传给主界面呢?
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
原来一开始就理解的方向就错了,cookie里面的sessionid是不需要程序员来操作的,浏览器自己会维护,除非是你自己设置的cookie。
这里实际的问题是cookie跨域问题,默认情况下,Cookie不包括在CORS请求之中。如果要把Cookie发到服务器,一方面要服务器同意,指定Access-Control-Allow-Credentials字段。另一方面,开发者必须在AJAX请求中打开withCredentials属性。并且Access-Control-Allow-Origin就不能设为星号,必须指定明确的、与请求网页一致的域名。同时,Cookie依然遵循同源政策,只有用服务器域名设置的Cookie才会上传,其他域名的Cookie并不会上传,且(跨源)原网页代码中的document.cookie也无法读取服务器域名下的Cookie。
这里主要参考了阮一峰大佬的文章,大家可以看看,确实很有用。感谢大佬~~
http://www.ruanyifeng.com/blo...