1.跨域情况
1-1 同域名同端口号 : 非跨域
http://www.aa.com/*.html --> http://www.aa.com/saveData
1-2 不同主域名 : 跨域
http://www.aa.com/*.html --> http://www.bb.com/saveData
1-3 不同子域名 : 跨域
http://aa.cc.com/*.html --> http://bb.cc.com/saveData
1-4 不同端口号 : 跨域
http://www.aa.com:8080/*.html --> http://www.bb.com:8081/saveData
1-5 不同协议 : 跨域
http://www.aa.com:8080/*.html --> https://www.bb.com:8080/saveData
1-6 localhost与127.0.0.1 : 跨域
http://localhost:8080/*.html --> http://127.0.0.1:8080/saveData
2.实际场景
项目采用SpringCloud分布式架构,在开发新功能时,由于前端与后台是两个SpringBoot应用,前台调用后端接口时,因为两个项目本地启动时端口不可能一致,存在跨域访问问题.
3.解决办法
在Java服务端添加一个配置类:
package edu.ecnu.yjsy.conf;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;@Configurationpublic class CorsConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowCredentials(true) .allowedMethods("GET", "POST", "DELETE", "PUT") .maxAge(3600); }}