springboot配置跨域訪問

前後端分離項目中要使用ajax訪問網絡資源,如果訪問的不是同域的資源,會報錯
Access to XMLHttpRequest at ‘http://localhost:8080/api/test’ from origin ‘http://localhost:8088’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

解決方法是在服務器端設置Access-Control-Allow-Origin,springboot中已經考慮到這一點,詳見https://spring.io/blog/2015/06/08/cors-support-in-spring-framework

本文只列出兩種全局配置方法:兩種選一種即可
第一種:

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

        @Override
        public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**");
        }
 }

第二種:

@Configuration
public class MyConfiguration {

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**");
            }
        };
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章