JAVA:后端springboot跨域问题解决

以前一直写后端,前端很少接触,由于刚刚毕业,接触的项目还是比较少,最近接触了前后端分离的项目,在前后端分离的结构上,前端和后端分别部署在不同的服务器上,这样在调试的时候就出现了问题。
出于安全原因,浏览器禁止对驻留在当前源之外的资源进行AJAX调用。现在普遍处理跨域的问题都是通过CORS(跨源资源共享),并且大多数浏览器实现的W3C规范,允许您以灵活的方式指定授权的跨域请求类型,而不是使用IFrame或JSONP等安全性较低且功能较弱的黑客。这里只给出后端springboot的解决方案,前端的话可以用nginx反向代理,或在vue中的axios做相关配置,当然还有别的方法就不一一列举了。
这里给出我自己的解决方案(针对SpringBoot):
创建一个config包,包里创建一个类,把如下代码cp进去就可以了:

package com.harman.items.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;

/**
* 跨域请求处理 CORS
*/
@Configuration
public class CorsConfig {
private CorsConfigurationbuildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1允许任何域名使用
        corsConfiguration.addAllowedHeader("*"); // 2允许任何头
        corsConfiguration.addAllowedMethod("*"); // 3允许任何方法(post、get等)
        return corsConfiguration;
    }
@Bean
    public CorsFiltercorsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); // 4
        return new CorsFilter(source);
    }
}

你可能感兴趣的:(JAVA:后端springboot跨域问题解决)