记一次后端注入cookie
快两个月没有日记了,过了将近一个月猪一样的生活,天天吃了睡睡了吃,也都不学习。这两星期在家办公,在调试后端注入cookie遇见了少量问题,记录一下。
跨域这件事,就不谈了,说少量小细节。当前台请求不携带cookie的时候,服务端设置:
‘Access-Control-Allow-Origin’: ‘*’
这时候不会报跨域的错误。
当前台设置了允许携带cookie:
设置withCredentials为true,报错:
image
表示不能够是通配符*号。
image
image
Access-Control-Allow-Origin要配置完整的地址,http要,端口也要,而且后端也必需允许携带cookie,Access-Control-Allow-Credentials要配置true。
这时候问题就来了,刚开始我写的node接口和后端自己写的接口自己测试都能注入cookie,我请求后端接口就注入不了,起因是各自测试的时候,都是本机的ip,很容易直接就注入了cookie。IP相同的情况下,开启了允许携带cookie,注入很简单。
由于是前后台分离,部署上去是没什么问题,开发的时候ip都是本机的,就出现死活注入不了cookie。配置了domain也都无法注入。
后来理解到,不同IP是无法由后端直接注入cookie,而且不同域名之间也是无法注入cookie的。好比百度无法给京东注入cookie。也都知道同一个域名下的子域名和这个域名cookie是共享的。比方:
c.xx.com和b.xx.com之间的cookie是共享的。
于是我本地host配置了两个IP:
我本地项目启动用31.xx.com作为域名,31是我的本机IP,多个开发人员都可以自定义一个,只需xx.com相同就好。
接口设置一个域名,比方请求的接口地址是http://192.168.164.25,那么就设置192.168.164.25 b.xx.com,而后直接请求地址:
http:// b.xx.com:8080/test/getInfo
最后让后端domain设置为.xx.com,这样开发的时候也都能注入cookie。要注意的是,path最好设置一下/,前台setcookie也一样,否则默认注入的path是当前页面,另外的页面就获取不到cookie了。
罗里吧嗦了一堆,其实重点就两个,想要由服务端注入cookie,前端后端都需要开启允许携带cookie设置withCredentials,开启之后允许跨域的头要是完整地址,不同IP域名之间无法注入cookie,发布线上可以发布在域名相同或者者子域名相同的服务,本地开发通过配置host域名指向来进行开发。
当初调试了蛮长时间,有很多不同的报错,今天想重现是不可能了,只是记录我处理的办法,不敢保证都是这种情况。
image
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 记一次后端注入cookie