基于cors (Cross-origin_resource_sharing)
springboot 端配置
package org.linlinjava.litemall.core.config; 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 { // 当前跨域请求最大有效时长。这里默认30天 private long maxAge = 30 * 24 * 60 * 60; private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin("http://xxx.com"); // 1 设置访问源地址 多个可用","分离 corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头 corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法 // # 服务端接受跨域带过来的Cookie,当为true时,origin必须是明确的域名不能使用* corsConfiguration.setAllowCredentials(true);//允许凭证 corsConfiguration.setMaxAge(maxAge); return corsConfiguration; } @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", buildConfig()); // 4 对接口配置跨域设置 return new CorsFilter(source); } }
前端vue配置
设置 axios.defaults.withCredentials=true //携带凭证
参考 跨域踩坑经验总结 https://ningyu1.github.io/site/post/92-cors-ajax/