需求
登录时的账号生成Cookie传值到新的页面,新的页面里存在ajax方法会向后台传值与Cookie,后台获取值和Cookie。
问题
将Cookie值传到前台后,F12看页面有Cookie值,但是提交ajax中的方法的request头中,无自定义Cookie。后台也无法获取到自定义的Cookie,只能获取到一个默认的Cookie。
分析
登录后设置了username和值作为cookie的key和value,但是在使用ajax方法传值时却没有自己定义的cookie,只有系统自带的cookie,网上找了一些方法,有说跨域ajax无法传cookie的,有说是ajax默认传递同源cookie的,感觉默认传同源不传非同源比较靠谱。
解决方法
1.前端html页面中的ajax方法中设置:
xhrFields: { withCredentials: true },
原因:ajax会自动带上同源的cookie,不会带上不同源的cookie,通过添加该设置可以让ajax传不同源cookie。
(试过后还是不行,原来是自己的一些小失误导致的,请看第二步)
2.检查创建cookie时的语句:
//创建cookie
Cookie cookie =