springboot允许跨域访问配置如下:
首先写一个配置类,实现WebMvcConfigurer接口的addCorsMappings()方法即可。@Configuration
public class WebConfig implements WebMvcConfigurer {
/**
* 允许跨域
* @param registry
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
}
但是,凡是就有但是,这样配置是跨域了,并且是所有路径允许跨域访问!但是这个跨域访问只有GET和POST请求才可以成功的跨域访问。要是PUT、DELETE请求呢?在restfull风格的api中PUT、DELETE请求很常见!
springboot配置PUT、DELETE请求跨域访问
很简单,在原先addCorsMappings()方法上修改即可@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "DELETE", "PUT","PATCH")
.maxAge(3600);
}
注意.allowedMethods("GET", "POST", "DELETE", "PUT","PATCH")这一行,设置跨域请求方式,默认只有GET和POST请求!其他几个配置不用关心。
跨域路径设置
addMapping("/**")这个方法就是设置跨域路径,你可以改为addMapping("/abc/**")这样一来就只有路径/abc下的接口允许跨域了!@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/abc/**")
.allowedOrigins("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "DELETE", "PUT","PATCH")
.maxAge(3600);
}
OK,教程到此结束