vue cli 解决跨域 线上 nginx 反向代理配置

Posted James的博客园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue cli 解决跨域 线上 nginx 反向代理配置相关的知识,希望对你有一定的参考价值。

前后分离 axios 接 api 跨域问题如图:

解决办法:

1. npm start 本地开发环境解决:

在webpack配置文件 /config/index.js 里找到 proxyTable 开启代理 changeOrigin:true,

proxyTable: {
      \'/api\':{
        target:\'http://xx.xx.xx.xx:5568\',
        changeOrigin:true,
        pathRewrite:{
            \'^/api\':\'/api\'
        }
      }
    },

 

2. npm run build 把 dist 放线上后解决:

nginx 的 配置文件 xx.conf 的 server {} 里加如下:

location /api/ {
        # 把 /api 路径下的请求转发给真正的后端服务器
        proxy_pass http://xx.xx.xx.xx:5568;

        # 把host头传过去,后端服务程序将收到your.domain.name, 否则收到的是localhost:8080
        proxy_set_header Host $http_host;

        # 把cookie中的path部分从/api替换成/service
        proxy_cookie_path /api /;

        # 把cookie的path部分从localhost:8080替换成your.domain.name
        proxy_cookie_domain localhost:80 http://xx.xx.xx.xx:5568;
    }

 

重新启动一下 nginx 

/etc/init.d/nginx reload

 api 跨域 访问成功

 

以上是关于vue cli 解决跨域 线上 nginx 反向代理配置的主要内容,如果未能解决你的问题,请参考以下文章

vue配置反向代理 devServer配置proxy

宝塔面板配置 vue生产环境和开发环境 反向代理---Nginx+Apache解决方案

nginx配置反向代理解决vue跨域问题

Vue Nginx反向代理配置 解决生产环境跨域

vue-cli 跨域proxyTable 中的pathRewrite配置

vue-cli 配置proxyTable解决跨域 配置了但是无效,还是本地的服务器