我在java vue项目的跨域配置中,用了下面的代码,为什么里面的替换没有起作用,目标地址还是前端的端口
时间: 2024-03-21 07:38:55 浏览: 59
关于vue 项目中浏览器跨域的配置问题
5星 · 资源好评率100%
在 Java Vue 项目中进行跨域配置时,需要确保配置正确生效。如果你使用了类似以下的代码进行跨域配置:
```java
@Configuration
public class CorsConfig {
@Value("${vuejs.url}")
private String vueUrl;
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins(vueUrl)
.allowCredentials(true)
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS");
}
};
}
}
```
这里的 `vueUrl` 是前端的地址,你需要确保在配置文件中已经将其设置为正确的地址,例如:
```properties
vuejs.url=http://localhost:8080
```
此外,你提到的“替换没有起作用”,我猜测你可能指的是在前端代码中使用了代理的方式进行跨域。如果是这样的话,你需要在 `vue.config.js` 中进行配置,例如:
```javascript
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://localhost:8080',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
}
}
```
这里的 `target` 是后端的地址,`pathRewrite` 可以用于对请求路径进行重写。在这个例子中,所有以 `/api` 开头的请求都会被代理到 `http://localhost:8080`,并且请求路径中的 `/api` 会被替换为空字符串。因此,如果你想访问后端的 `/api/user` 接口,实际上会被代理到 `http://localhost:8080/user`。
阅读全文