在前后端联调的时候出现这样的问题:
![](https://img-blog.csdnimg.cn/img_convert/9e115a7be92d86ee60d4361e2333b3b5.png)
这是明显的跨域问题,默认情况下是无法访问的,可能原因如下:
访问协议不一样:http 与 https;
访问地址不一样;
前端端口号和后端接口端口号不一样。
解决方案:
在 Controller 类加上 @CrossOrigin 注解;
使用Spring Cloud Gateway:
添加依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>yygh_parent</artifactId>
<groupId>com.atguigu</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>service_gateway</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!-- 服务注册 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
</project>
配置文件
# 端口号
server.port=80
# 服务名
spring.application.name=service-gateway
# nacos
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
# 使用服务发现路由
spring.cloud.gateway.discovery.locator.enabled=true
# 路由 id
spring.cloud.gateway.routes[0].id=service-hosp
# 路由 uri
spring.cloud.gateway.routes[0].uri=lb://service-hosp
# 路由断言
spring.cloud.gateway.routes[0].predicates= Path=/*/hosp/**
还可能出现 80 端口被 system 占用的问题可以参考如下链接: