cookie知识总结

1.cookie跨域只区分域名,不区分端口,比如www.baidu.com输出的cookie在www.baidu.com:8080站点中也可以读写。

2.父域名和(www.baidu.com)子域名(a.baidu.com)或多个子域名间(a.baidu.com,b.baidu.com)需要共享cookies的,输出cookie时domain应设置为baidu.com。
3.path
一个站点下有如下目录:/test/,/test/a/,/test/b/,现设一个cookie1的path为/test/,cookie2的path为/test/b/,那么test下的所有页面都可以访问到cookie1,而/test/和/test/a/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。
4.ajax与cookie
ajax同源请求时,如果响应头中包含cookie信息,浏览器会自动写入,请求时如果站点下有cookie也会自动带上。
ajax跨域请求时,即使响应头中包含cookie信息,浏览器也不会自动写入,js也无法从响应头中读取到cookie信息。
ajax跨域请求下,ajax不会自动携带能访问到的cookie,需要通过前端和后端配置相应参数; 
前端参数:
withCredentials: true(发送Ajax时,Request header中会带上Cookie信息) 
后端参数: 
 (1)Access-Control-Allow-Origin:设置允许跨域的域名, 响应头指定了该响应的资源是否被允许与给定的origin共享; 特别说明:配置了Access-Control-Allow-Credentials:true则不能把Access-Control-Allow-Origin设置为通配符*; 
 (2)Access-Control-Allow-Credentials:响应头表示是否可以将对请求的响应暴露给页面(cookie)。返回true则可以,其他值均不可以
原文地址:https://www.cnblogs.com/94pm/p/13810646.html