spring boot 跨越问题

1.全局跨域

/**
 * 跨域问题
 *
 * @author dereck
 */
@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);
    }
}

2. 使用注解(局部跨域)

@RequestMapping("/preUser")
@CrossOrigin("http://localhost:8080")
public Map<String,String> preUser(){
    Map<String,String> map = new HashMap<String,String>();
    map.put("preUser","success");
    return map;
}

Access-Control-Allow-Origin 表示允许哪些原始域进行跨域访问。

Access-Control-Allow-Credentials表示是否允许客户端获取用户凭据。

Access-Control-Allow-Methods 表示允许哪些跨域请求的提交方式。(例如GET/POST)

Access-Control-Expose-Headers 表示允许暴露哪些头部信息给客户端。

Access-Control-Max-Age 表示预检请求 [Preflight Request] 的最大缓存时间。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章