HTTP篇之cookie设置(前端和后台)

前台代码:

var xhr = new XMLHttpRequest();
xhr.open('GET','http://localhost:3000/list');
xhr.withCredentials = true;
xhr.send();

XMLHttpRequest发送请求时需要设置withCredentials属性为true,来允许浏览器在自己的域设置cookie值。

如果withCredentials没有设置为true,就会出现Response Headers有Set-Cookie,但是浏览器却没有存储cookie的情况。

后台代码:

response.setHeader('Access-Control-Allow-Credentials',true);
response.setHeader('Access-Control-Allow-Origin','http://localhost:63342');
response.setHeader('Set-Cookie','token=cowshield');

后台设置的Access-Control-Allow-Credentials和前台设置的withCredentials是要结合使用的

Access-Control-Allow-Origin是允许跨源的,通常设置为'*'。但是设置了Access-Control-Allow-Credentials后,就必须写跟Request Headers的Origin相同的地址了。


不然就会报下面这个错误(但是不影响请求和cookie存储..)


最后就是Set-Cookie了,后台响应后,就可以在浏览器看到


再来验证下是否真正成功了,也就是浏览器把cookie存储到当前域下


后续发送的请求就会在Request Headers里自动带上这个cookie了


这就搞定了。

总结一下:

前台要设置withCredentials,后台要设置Access-Control-Allow-Credentials。

前台发起请求的Origin(url的ip地址或者域名)一定要和后台设置的Access-Control-Allow-Origin相同。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值