疑惑点

在写一个小项目时,发现前端XHR请求不自动携带Cookie凭证,根据自己之前掌握的,知道在发送http请求时,浏览器会自动携带Cookie,就挺奇怪了

解决

去找了找资料,发现之前自己一直存在一个误区,浏览器会自动携带Cookie,但是是在同源的情况下,如果不是同源,就会受到同源策略的影响,不能携带

注意是同源才可以!!!

结论:

1.Ajax会自动带上同源的Cookie,不会带上不同源的Cookie

2.可以通过前端设置withCredentials为true, 后端设置Header的方式让Ajax自动带上不同源的Cookie,但是这个属性对同源请求没有任何影响。会被自动忽略。

小知识

1.获取cookie

document.cookie

如果Cookie的httponly为true JS获取不到Cookie

2.cookie由服务器端生成,并向前端发送cookie,浏览器将cookie保存,并且在之后每一次接口请求都携带上cookie

3.axios配置跨域携带Cookie

axios.create({
  baseURL: "http://127.0.0.1:8080",
  withCredentials: true, //主要是添加这一行
})

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐