最近vue项目,调用java服务是,一直报错:
Access to XMLHttpRequest at ‘https://gw-api.pinduoduo.com/api/router?type=pdd.ddk.top.goods.list.query&p_id=9182619_112123568&sort_type=1&offset=20&limit=20&client_id=ae75c3d8bb1c4259893193fb79c242a7×tamp=1575366417424&data_type=JSON&sign=B64BBCC6BCD534E18E777D3321A993AF’ from origin ‘http://localhost:3000’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
请求跨域问题,需要在java服务端设置允许跨域,具体代码如下:
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;
/**
* 允许跨域请求
*/
@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);
}
}