springboot 使用 CorsConfig 和注解,解决跨域问题

所有文章优先发布在个人博客上面,后面修改可能忘记同步到CSDN。 给你带来麻烦抱歉。

本篇文章个人博客位置 : https://www.xdx97.com/article/654723079183794176

 

 

目的:解决springboot跨域请求的问题

注:

    1、这个解决的方法在网上直接都可以搜索到。基本都是三种解决办法。说第一种解决不了 500错误继续什么什么的。。。 

    2、这都不重要重要的是,他们给出了代码。我们却不知道怎用。

    3、我在这个上面做出了解释,和添加了一条,解决session 两次获取不一样的问题后台解决。

第一种 (CorsConfig ) 

    解释全部写在了代码里面,把以下代码,放在controller下面就可以了

package com.xdx97.backstage.controller;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * 解决跨域请求的
 */

@Configuration
public class CorsConfig {
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        //  你需要跨域的地址  注意这里的 127.0.0.1 != localhost
        // * 表示对所有的地址都可以访问
        corsConfiguration.addAllowedOrigin("http://localhost:3030");
        //  跨域的请求头
        corsConfiguration.addAllowedHeader("*"); // 2
        //  跨域的请求方法
        corsConfiguration.addAllowedMethod("*"); // 3
        //加上了这一句,大致意思是可以携带 cookie
        //最终的结果是可以 在跨域请求的时候获取同一个 session
        corsConfiguration.setAllowCredentials(true);
        return corsConfiguration;
    }
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        //配置 可以访问的地址
        source.registerCorsConfiguration("/**", buildConfig()); // 4
        return new CorsFilter(source);
    }
}

 

第二种:注解方式

把下面这个注解,放在需要跨域的controller上面,需要的话,也可以配置一个过滤器,实现全局跨域

@CrossOrigin(origins = "*",allowCredentials="true",allowedHeaders = "",methods = {})

第三步:全局启动服务器

如果不明白什么是全局启动,就参考这个里面的第二种启动方法:

https://blog.csdn.net/Tomwildboar/article/details/82422485

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值