2019-01-09
JavaScript
0

目录

domain
设置domain的情况
不设置domain的情况
path
客户端withCredentials

在Web开发中,Cookie是一种存储在客户端浏览器上的小型文本文件。它们被用于存储用户信息、用户偏好设置以及在网站之间传递数据。在JavaScript中,通过document.cookie属性来操作Cookie。

  • 不同浏览器之间cookie不共享
  • cookie只会种在requestUrl中
  • 发起请求时,会带上当前浏览器下该requestUrl下的所有cookie
  • 谷歌安全策略,当前域名和requestUrl域名不一致时,newwork下的requset请求头会显示Provisional headers are shown,火狐当域名和requestUrl域名不一致时,可以看到完整的request信息。

domain

设置domain的情况

当我们的网站向一个域名发起请求时,如果请求返回的response信息里面携带set-cookie,就会向该浏览器(如谷歌,火狐)下的该requestUrl种下一个cookie,无法跨域向其它域种下cookie。domain的作用是指定该cookie在当前requestUrl下的作用域,如domain:.myhqq.com,则这个cookie在三级域名下的www或者又是在qqq下都可以访问到该cookie。如果domain设置为requestUrl之外的地址,则此cookie不会被设置成功。

不设置domain的情况

默认在当前requestUrl种下cookie,如发起的请求requestUrl:www.myhqq.com,则在当前requestUrl种下cookie,此时qqq.myhqq.com下无法使用该cookie。

path

path:为当前requestUrl下cookie的使用路径,当path为错误时,会自动定位到第一目录下,如设定path

,requsetUrl:http://www.myhqq.com/weapp/get,此时path错误,被默认设为/weapp, 子路径可以访问父路径cookie,父路径无权访问子路径cookie。

客户端withCredentials

客户端withCredentials: true 设置为true时,

  • 允许跨域设置set-Cookie
  • 并且允许发送请求的时候带上cookie
  • 如果为false时则respone返回的set-Cookie不会生效且请求时不会带上cookie

withCredentials不设置时,不允许跨域设置并且携带cookie。 同域下不设置withCredentials时,可以设置cookie并且请求时携带本域cookie

服务端需配置  Access-Control-Allow-Credentials

(同意接收浏览器的cookie)

本文作者:BARM

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!