为什么跨域? 因为浏览器是由同源策略的

devServer 就是vuecli在开发环境给我们提供的一个代理服务器,(使用的是 http-proxy-middleware)

devServer 就相当于 用一个 中间件服务器来访问,服务器是没有 同源策略的

  devServer: {
    host: "localhost",//配置本项目运行主机
    port: 8080,//配置本项目运行端口
    //配置代理服务器来解决跨域问题
    proxy: {
      // ‘/api’ 的作用就是 替换 baseURL 的,假如这里我用的 localhost:8080 ,前端请求时直接用 /api 就行了
      //  ‘/api’ 只在前端请求时添加,而后端不需要添加 /api 这个路径
      "/api": {
        target: "http://localhost:3008", //配置要替换的后台接口地址
        changOrigin: true, //配置允许改变Origin
        ws: true, // proxy websockets
        pathRewrite: {
          "^/api": "/",
          //pathRewrite: {'^/api': '/'} 重写之后url为 http://localhost:8080/xxxx
          //pathRewrite: {'^/api': '/api'} 重写之后url为http://localhost:8080/api/xxxx
        },
      },
    },
  },

so。。这样开发时就没有跨域问题啦

但这只是 vuecli 在开发时才提供的服务器,那么部署后呢?

那就需要 nginx 反向代理啦

具体看文章https://blog.csdn.net/aaassddd_a/article/details/121696588?spm=1001.2014.3001.5501

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐