之前登录后端是可以传给前端token,但是前端就是怎么都传不会来token,前端打包项目或使用postman都可以传入token,唯独pc浏览器模拟手机传不过来,检查发现前端用浏览器模拟器手机传入是会先请求域请求OPTIONS的形式,然后再请求你设置的类型GET,POST,然后后端会拦截请求拒绝了OPTIONS请求,就不会再走了,所以后端怎么都获取不到前端传过来的token。
百度有很多方法,我先说我的解决方法。
我这边解决方法是:我用的事spring boot,前端angular,
1.直接去WebSecurityConfig
2.加入OPTIONS通行
3.去controller类名上或者方法上加入@CrossOrigin都可以
@CrossOrigin
OK!完成,测试看看!
1.百度大部分说是说写
自己写个Filter的过滤器,也是拦截器吧,每次请求都会访问这个,主要作用就是给每个请求修改请求头和通过所有起源
主要代码就是:
//添加参数,允许任意域访问
RESP。setHeader(“Access-Control-Allow-Origin”,“*”);
RESP。setHeader(“Access-Control-Allow-Headers”,“Content-Type,Content-Length,Authorization,Accept,X-Requested-With,X-App-Id,X-Token”);
RESP。setHeader(“Access-Control-Allow-Methods”,“PUT,POST,GET,DELETE,OPTIONS”);
RESP。setHeader(“Access-Control-Max-Age”,time + “”);