在做前后端分离的时候,spring boot 下需要配置相关的跨域参数.
默认下ajax的jsonp能解决get 查询,但是很多接口是post delete put 等操作,jsonp无解.
核心解决办法就是在 Respone Header头中Access-Control-Allow-Origin。
一般实现方式为添加拦截器,全局返回的Repsone添加Access-Control-Allow-Origin.
spring boot 可以以更简单的方式实现.
import
org.springframework.context.annotation.Configuration;
import
org.springframework.web.servlet.config.annotation.CorsRegistry;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public
class
CorsConfig
extends
WebMvcConfigurerAdapter {
@Override
public
void
addCorsMappings(CorsRegistry registry) {
registry.addMapping(
"/spi/**"
)//注意 这里一定是两个* 代表多目录
.allowedOrigins(
"*"
)//这里根据具体情况,尽量配置为前端的域名或者内网ip
.allowCredentials(
true
)
.allowedMethods(
"GET"
,
"POST"
,
"DELETE"
,
"PUT"
)
.maxAge(
3600
);
}
}