ajax 跨域cookie解决方案

 什么是Session, 什么是Cookie?

Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的
SessionID,用该SessionID为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户
端,用Cookie保存的,用户提交页面时,会将这一SessionID提交到服务器端,来存取Session数据。这一过程,
是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。Cookie是客户端的存储空间,由
浏览器来维持。


Url重写

服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。如果客户端Cookie禁用,则
服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。可以试一下,即使不写
Cookie,在使用request.getCookies();取出的Cookie数组的长度也是1,而这个Cookie的名字就是
JSESSIONID,还有一个很长的二进制的字符串,是SessionID的值。实质上 URL 重写是通过向 URL 连接添加参
数,并把 session ID 作为值包含在连接中。然而,为使这生效,你需要为你的 servlet 响应部分的每个连接
添加 session ID.


同源下http cookie的协议


在同源时,不管是ajax请求还是普通的get post请求,浏览器访问时都是会带着本域下所有的cookie一起访问服
务端。服务端在响应时又会通过http header中的set cookie返回给浏览器。浏览器把cookie再写入该域名下的
cookie存储空间。如此来循环


跨域下http cookie的协议

当跨域时,浏览器端请求服务端都不会带着cookie的信息。在使用ajax请求时,如果不进行特殊的处理还会有
同源错误产生,更不用说带着cookie了。 服务端返回的cookie,浏览器也不会写入其对应的域名下的存储空
间。那么怎么解决这个问题,xmlhttprequest 2 给出了解决方案。



具体内容请参考  https://www.cnblogs.com/btgyoyo/p/6219516.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值