Ajax跨域請求,針對SpringBoot

轉:https://segmentfault.com/a/1190000012469713?utm_source=tag-newest

使用springboot進行前後端分離的時候出現跨域請求。

在HTML頁面發起ajax請求的時候出現了下列錯誤。

說明這不是一個簡單的請求,分別嘗試在前端和後端解決。

1、發起ajax的時候,將dataType由"json"改爲"jsonp"

$.ajax({
	url: ApiUrl+"/tree/queryTreeNode",
	type: "get",
	dataType: 'json',
    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
    success: function(data){
        console.log(data);
    }
})

結果:不在報錯,但是返回的數據不可用

2、在後端添加以下全局配置

/**
 * 跨域配置
 */
@Configuration
public class CorsConfig{

	private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        
        // 可以自行篩選
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        
        source.registerCorsConfiguration("/**", buildConfig());
        
        return new CorsFilter(source);  
    }
}

結果:成功解決。

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