vue cli3.0+ 跨域配置


配置baseURL

根据项目axios的引入方式, 可以分为两种配置方式:

  • 如果axios 是npm install 加入的,那可以在在项目的main.js中配置:

    Axios.defaults.baseURL = '/api'

  • 如果是通过vue@cli ,即 vue add axios 加入的,则可以在plugins文件夹中的axios.js中配置:

    let config = {
      baseURL: '/api'
      // baseURL: process.env.baseURL || process.env.apiUrl || ""
      // timeout: 60 * 1000, // Timeout
      // withCredentials: true, // Check cross-site Access-Control
    };

配置axios跨域

配置完baseURL后,就可以根据baseURL进行跨域配置了。

  • 开发环境

    新建vue.config.js,并在其中配置跨域方案:

    module.exports = {
      devServer: {   //这里解决开发环境的跨域问题, 生产环境的跨域问题需要再nginx服务器解决
        proxy: {
          '/api': {
            // 此处的写法,目的是为了 将 /api 替换成 http://localhost:8088/
            target: 'http://localhost:8088/',
            // 允许跨域
            changeOrigin: true,
            ws: true,
            pathRewrite: {
              '^/api': ''
            }
          }
        }
      }
    }
  • 生产环境

    使用nginx 服务器, 配置文件nginx.conf 中增加server的配置 :

    listen       8081;   
    server_name  localhost;
    location / {
       root   html; #这里的html是指 nginx根目录的html文件夹,即你项目打包好的dist目录下的文件全部拷贝至这里,(要先将html目录下的文件删掉)
       index  index.html index.htm;
       try_files $uri $uri/ /index.html;
    }
    location /api/ {               #这里/api/的配置和上面的baseURL的配置是对应的。
       proxy_pass   http://localhost:8088/;   #这里的配置表示将请求都转发至这个地址
    }

ok,以上就是使用vue cli 3.0+ 开发vue项目时配置axios跨域的常见解决办法啦。留作备忘!


文章作者: Jason We
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jason We !
评论
 上一篇
nginx使用总结 nginx使用总结
使用nginx作代理服务器在做前后端项目分离并部署到生产环境上时,可以选择nginx作前端项目的服务器,使用起来还是很方便的。同时,仅需简单的配置即可实现端接口转发,具体操作可以看之前的一篇blog: vue cli3.0+ 跨域配置 ng
2020-10-31
下一篇 
懒人自述 懒人自述
关于我一个真实的懒人,一向懒得写文章,做笔记,回顾大学的时光,图书馆没少泡,书没少看,习也没少学;奈何本人很笨,不能做到过目不忘,所以一直都是”狗熊掰棒子“,学多少忘多少,直到现在回首,惊觉大学四年没留下像样点的个人记录,不甚惋惜。所以,近
2020-10-20
  目录