OPTIONS请求
跨域请求之前会先发送一次OPTIONS请求,请求200之后才会发送真正的请求。
方法一:增加配置类
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) {
System.out.println(">>>>>>>>>> 【跨域日志】CorsConfig");
registry.addMapping("/**") // 允许跨域访问的路径
.allowedOrigins("*") // 允许跨域访问的源
.allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") // 允许请求方法
.maxAge(168000) // 预检间隔时间
.allowCredentials(true); // 是否发送cookie
}
}
方法二:通过配置Nginx
location /app/api/ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Credentials true;
include proxy_params;
proxy_pass http://127.0.0.1:8080/;
access_log /home/work/data/httplogs/uat-appapi-access.log main;
error_log /home/work/data/weblogs/uat-appapi-error.log;
}
如果上述方法都不行
查看F12控制台,报错信息是否为The 'Access-Control-Allow-Origin' header contains multiple values
:
这是因为跨域设置重复了,删掉重复的跨域配置即可。