ZPY博客

Vue axios访问后台接口跨域SpringBoot设置跨域不起作用

昨天在家搞了一下午,在Springboot里设置了跨域,但还是一直报跨域。

配置如下:

package com.example.mybatis.config;


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();  
        corsConfiguration.addAllowedOrigin("*"); // 1允许任何域名使用
        corsConfiguration.addAllowedHeader("*"); // 2允许任何头
        corsConfiguration.addAllowedMethod("*"); // 3允许任何方法(post、get等) 
        return corsConfiguration;  
    }  
  
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); // 4  
        return new CorsFilter(source);
    }  
}

因为一直在报跨域的错,所以我一直以为是上面代码的问题,但是查了很多资料,上面的写法应该是没有问题的,感觉是前端的问题吧,vue里用axios是最简单的get请求,应该也没什么问题。后来晚上在床上用手机查时看到一篇文章说请求地址里如果不加http://的话,也会报跨域,突然想起我好像直接用的localhost,没有加http://,好吧,加上后问题解决。