开发环境下的Vue项目配置proxyTable,后端SpringBoot

在前后端分离的Vue项目中,为了解决跨域问题,通常会在Vue的配置文件中设置proxyTable。本文介绍了如何在vue-cli生成的项目中,通过修改`config/index.js`的proxyTable配置,将前端8080端口的/api/*请求代理到后端9090端口,从而避免预检请求。同时,后端SpringBoot的YML配置也需要正确设定接口映射,以确保返回AjaxResult对象给前端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  前后端分离部署存在跨域问题 ,每次前端请求后端都会发送一个option请求。这里可以通过配置代理来去掉跨域问题。

项目是通过 vue-cli生成的 , 所以有config文件夹 下面有 index.js : 

找到 以下代码:

module.exports = {
  dev: {
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {},

proxyTable里面添加以下内容:

    proxyTable: {
      '/api': {
        target: 'http://localhost:9090/',//后端的访问地址 
        secure: false, //https请换成true,
        changeOrigin: true, //是否跨域  跨域选择true
        pathRewrite:{'^/api':'/api'}
      }
    },

这里 假设我们后端项目启动的地址以及端口是:http://localhost:9090.那么我们前端访问后端的请求 (axios来处理 ):

//获取当前用户
axios.post("/api/user/getNowUser",data).then(response => response.data);

假设前端启动端口是 8080,那么上面访问的代码是 http://localhost:8080/api/user/getNowUser 这个地址会代理到:

http://localhost:9090/api/user/getNowUser 

后端的yml配置是 : 

server:
    port: 9090
    context-path: /api #访问项目路径

请求后端的映射是:

@RestController
@RequestMapping("/user")
@Api(value = "用户相关接口",tags = {"用户操作接口"})
public class UserinfoController {

    @Autowired
    IUserinfoService iUserinfoService;

    /**
     * 测试多数据源
     * 获取当前用户   
     * @return
     */
    @PostMapping("/getNowUser")
    @Cacheable
    @ApiOperation(value = "获取当前用户接口",notes = "获取当前用户")
    public AjaxResult getList(@RequestBody User user){
        ......
    }

最后返回  AjaxResult对象给前端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值