介绍
目前项目一般采用的是前后端分离,当使用前端node + vue + axios 发送跨域请求时会报错,如下
解决
需要在项目中配置CorsConfiguration。
代码如下:
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;/*** 支持跨域请求** @author choahen* @date 2019/8/7*/@Configurationpublic class CrossConfig {private CorsConfiguration buildConfig() {CorsConfiguration corsConfiguration = new CorsConfiguration();//允许任何域名corsConfiguration.addAllowedOrigin("*");//允许任何头corsConfiguration.addAllowedHeader("*");//允许任何方法corsConfiguration.addAllowedMethod("*");return corsConfiguration;}@Beanpublic CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();//注册source.registerCorsConfiguration("/**", buildConfig());return new CorsFilter(source);}}
完美解决。
前端发送请求
axios({method: "PSOT", //请求方式url: "home/list", //请求地址data: {menu_id: 1,thirdapp_id: 1 //请求参数}}).then(function(res) {//返回值console.log(res.data);for (var i = 0; i < res.data.length; i++) {console.log(res.data[i].name);}}).catch(function(err) {console.log(err);});}
