问题
在写好接口之后,前端调用出现跨域现象.虽然都是在本地搭建的,但是由于端口号不同出现跨域问题.同源策略是说协议名,域名,端口号都一致.
image.png
解决方法
1. 使用@CrossOrigin注解
将该注解放在类上或方法上都可以
image.png
效果
image.png
2. 使用WebMvcConfigure的addCorsMappings方法配置CorsInterceptor
创建配置类CorsConfig.java
package com.unik.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry){
//设置允许跨域的路径
registry.addMapping("/**")
//设置允许跨域的请求域名
.allowedOriginPatterns("*")
//是否允许cookie
.allowCredentials(true)
//设置允许请求方式
.allowedMethods("GET","POST","PUT","DELETE")
//设置允许的header属性
.allowedHeaders("*")
//跨域允许时间
.maxAge(3600);
}
}
重启服务器
效果
image.png