最简单的方法直接在controller层加@CrossOrigin
一劳永逸的方法,全局方法(配置拦截器,实现WebMvcConfigurer接口)
package com.lza.config;
import com.lza.util.TokenInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
//配置拦截器
@Configuration
public class MvcConfig implements WebMvcConfigurer {
private TokenInterceptor tokenInterceptor;
@Autowired
public MvcConfig(TokenInterceptor tokenInterceptor){
this.tokenInterceptor=tokenInterceptor;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(tokenInterceptor).addPathPatterns("/**").excludePathPatterns("/doc.html/**")
.excludePathPatterns("swagger/**")
.excludePathPatterns("/swagger-ui.html")
.excludePathPatterns("swagger-ui.html")
.excludePathPatterns("/webjars/**")
.excludePathPatterns("/swagger-ui.html/*")
.excludePathPatterns("/swagger-resources")
.excludePathPatterns("/swagger-resources/**")
.excludePathPatterns("/v2/**");
}
@Override
public void addCorsMappings(CorsRegistry registry) {
//本应用的所有方法都会去处理跨域请求
registry.addMapping("/**")
//允许远端访问的域名
.allowedOrigins("http://localhost:8080")
//允许请求的方法("POST", "GET", "PUT", "OPTIONS", "DELETE")
.allowedMethods("*")
//允许请求头
.allowedHeaders("*");
}
}
前端的操作:在config下的index.js添加以下代码
proxyTable: {
'/api': {
target: 'http://localhost:8984',//设置你调用的接口域名和端口号
changeOrigin: true,
pathRewrite: {
'^/api': '/',//重写,
}
}
},
搞定