springboot与vue跨域访问问题
时间: 2023-10-20 13:10:13 浏览: 123
当前,大部分的前后端分离项目都采用Vue作为前端,Spring Boot作为后端,而Vue与Spring Boot本质上是两个不同的项目,它们分别运行在不同的端口上,这就导致了跨域问题的出现。
解决跨域问题可以通过以下几种方法:
1. 在Spring Boot的Controller层添加CORS配置
在Controller层的方法上添加@CrossOrigin注解,如下所示:
```
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
public class ApiController {
//...
}
```
其中@CrossOrigin注解中的origins参数表示允许跨域访问的域名,*表示允许所有域名访问。
2. 在Spring Boot的配置文件中添加CORS配置
在Spring Boot的配置文件中添加以下配置:
```
spring:
cors:
allowed-origins: "*"
allowed-methods: GET, POST, PUT, DELETE, OPTIONS
allowed-headers: Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization
exposed-headers: Access-Control-Allow-Origin,Access-Control-Allow-Credentials
allow-credentials: true
max-age: 3600
```
其中allowed-origins表示允许跨域访问的域名,*表示允许所有域名访问。
3. 在Vue项目中配置代理
在Vue项目的config/index.js文件中添加以下配置:
```
proxyTable: {
'/api': {
target: 'http://localhost:8080',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
```
其中target表示后端接口所在的地址,pathRewrite表示将请求中的/api前缀替换为空字符串。
以上三种方法都可以解决跨域问题,具体选择哪种方法可以根据实际情况来决定。
阅读全文