spring boot 解决 前端浏览器模拟手机传入token安全跨域问题

之前登录后端是可以传给前端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 + “”);
反正我用了这种没解决,写法很多,但是目的都是去修改请求头。其实spring boot @CrossOrigin就已经决定了跨域问题,不需要去修改请求头的。前端也有自己的解决方法,比如安装node绕过浏览器安全问题。

猜你喜欢

转载自blog.csdn.net/qq_34530405/article/details/81010378