has been blocked by CORS policy: Response to preflight request doesn‘t pass

原谅我,这样子来表达自己的心情,说真的 我太难了。网上一堆重复的东西,千篇一律 吗, 气死我了。还好,黄天不负有心人,我终于解决掉了。

一、请耐心看完

1.我的问题怎么产生的
说一下,我后端是springboot2.0版本,前端是vue, 后端springboot用shiro 控制了一下权限,进行授权登录的,就这样子我按照网上说的 解决了跨域 能够登录进去了,get请求也能发送了,但是就是post请求发送不出去。
在这里插入图片描述
看看这个是我的报错,炸眼一看,非常容易看成是跨域,但是我跨域解决了啊,我get请求都能发送出去,就是post请求发送不出去。

2.我是怎么解决的

1.先说说我怎么解决跨域的。
我的后端项目是springboot. 用shiro控制的认证和授权。我解决跨域用的是Filter来解决的。
直接上代码

@Configuration
public class CrossOriginConfig implements Filter  {


    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @SuppressWarnings("unused")
    public void doFilter(ServletRequest req, ServletResponse res,
                         FilterChain chain) throws IOException, ServletException {

            HttpServletResponse response = (HttpServletResponse) res;
            HttpServletRequest request = (HttpServletRequest) req;
            //跨域请求,*代表允许全部类型
            response.setHeader("Access-Control-Allow-Origin", "http://192.168.3.253:8080");
            //允许请求方式
            response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE,PUT");
            //用来指定本次预检请求的有效期,单位为秒,在此期间不用发出另一条预检请求
            response.setHeader("Access-Control-Max-Age", "86400");
            //请求包含的字段内容,如有多个可用哪个逗号分隔如下
            response.setHeader("Access-Control-Allow-Headers", "Content-Type,application/json");
            //访问控制允许凭据,true为允许
            response.setHeader("Access-Control-Allow-Credentials", "true");
			//这里很重要,一定要。否则你post请求就会和我一样的
            String type = request.getMethod(); 
            if(type.toUpperCase().equals("OPTIONS")){
                return;
            }
            chain.doFilter(req, res);
    }

    @Override
    public void destroy() {

    }

}

注意!!!,这里没有完事,shiro里还没有写呢
在这里插入图片描述

Map<String, Filter> filterChainDefinitionMap  = new LinkedHashMap<>();
filterChainDefinitionMap.put("myFormAuthCorsFilter",new CrossOriginConfig());
shiroFilterFactoryBean.setFilters(filterChainDefinitionMap);

有的博主就给截取一小段,我都不知道这段代码放在哪里 ~~ 生气。
我打出来的那段代码是让你们直接复制过去的(省事就完了)
在这里插入图片描述
注意:你加入的这个方法一定要在块之前。
剩下的就没有了。
反正我就是这个样子解决的。
但是能不能解决你的问题我就不清楚了。好了,今天又结束了。
goodbye 宝贝们。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值