vue-cli3中配置axios及使用

创建了vue-cli3脚手架项目之后,需要自己新建一个vue.config.js文件,然后配置axios,就可以请求接口获取数据了。

实现代码:

1.vue.config.js:设置反向代理,解决跨域

proxy: {
  '/api': {
    target: '请求地址',
    secure: false,  // 如果是https接口,需要配置这个参数
    ws: true,//是否代理websockets
    changeOrigin: true,
    pathRewrite: {
      '^/api': ''
    }
  }
}

2.main.js:配置axios信息

import axios from 'axios'

Vue.prototype.$axios = axios

axios.defaults.baseURL = '请求地址';//后端开发环境地址
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';//配置请求头信息。
axios.defaults.headers.common['accessToken'] = 'FA4C308D5E8F6409E01344ADDAEB4C71';

3.vue文件,使用axios请求数据:

this.$axios({
  method: "post",
  url: "/report/getReportFolders",
  data: {},
}).then((res) => {
  console.log(res);
});

vue.config.js文件完整代码:

module.exports = {
  /* 部署生产环境和开发环境下的URL:可对当前环境进行区分,baseUrl 从 Vue CLI 3.3 起已弃用,要使用publicPath */
  /* baseUrl: process.env.NODE_ENV === 'production' ? './' : '/' */
  publicPath: process.env.NODE_ENV === 'production' ? '/public/' : './',
  /* 输出文件目录:在npm run build时,生成文件的目录名称 */
  outputDir: 'dist',
  /* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */
  assetsDir: "assets",
  /* 是否在构建生产包时生成 sourceMap 文件,false将提高构建速度 */
  productionSourceMap: false,
  /* 默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */
  filenameHashing: false,
  /* 代码保存时进行eslint检测 */
  lintOnSave: true,
  /* webpack-dev-server 相关配置 */
  devServer: {
    /* 自动打开浏览器 */
    open: false,
    /* 设置为0.0.0.0则所有的地址均能访问 */
    host: '0.0.0.0',
    port: 9528,
    https: false,
    hotOnly: false,
    /* 使用代理 */
    proxy: {
      '/api': {
        target: '请求地址',
        secure: false,  // 如果是https接口,需要配置这个参数
        ws: true,//是否代理websockets
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  },
}
原文地址:https://www.cnblogs.com/5201314m/p/13411645.html