跨域访问时的sessionid和一般访问时不一致

奔跑小子 发布于 09/11 08:27
阅读 189
收藏 1

我有一个网站A,直接访问它的时候有一个sessionid,当我从网站B发起ajax请求到A时,session是不同的,有没有办法让这种情况也用相同的session?(共享A和B的session cookie可行吗)

加载中
0
lazy~
lazy~
sessionid是使用coomie来实现的,跨域的时候浏览器是不会发送sessionid的,这个是安全问题,比方说你网上登录了建设银行,你总不想访问其他网站的时候把这些cookie都带过去吧。这个时候你要发送这个sessionid只能采用路劲后直接指定的方式,http://xxx.xxx.com/your/path;JSESSIONID=XXXXXXXXX。域名后面那个是分号哦。
奔跑小子
回复 @lazy~ : 我试了一下,浏览器根本不认这样的写法啊(就是后面加;JSESSIONID=XXXXXXXXX)
lazy~
lazy~
有时候为安全问题,我们的浏览器会禁用cookie,这个也是解决这种问题的方式
lazy~
lazy~
嗯,可以这样用的
奔跑小子
没见过这种方式,服务器会自动把这个当作sessionid了?
0
木九天
木九天

可以使用redis共享sessionid,我不知道你是不是用的springboot,这个可以帮助你,https://my.oschina.net/mdxlcj/blog/3101770

0
pcode
pcode

springboot 支持用redis做分布式session。

在main上增加注解,

@EnableRedisHttpSession

并在application.yml中配置redis

 

spring:
  redis:
    database: 3
    host: X.X.X.X
    port: 1234
    password: 123456
  #让缓存指定到 redis 中去
  cache:
    type: redis
##如果要使用分布式session的时候再打开
  session:
    store-type: redis
0
AmCoder
AmCoder

可以使使用memcached实现共享session,需要配置一些tomcat的context.xml和添加几个依赖就行了

返回顶部
顶部