創建了vue-cli3腳手架項目之后,需要自己新建一個vue.config.js文件,然后配置axios,就可以請求接口獲取數據了。
實現代碼:
1.vue.config.js:設置反向代理,解決跨域
1 proxy: { 2 '/api': { 3 target: 'http:\\192.168.1.24:8081/', //后端地址 4 secure: false, // 如果是https接口,需要配置這個參數 5 ws: true,//是否代理websockets 6 changeOrigin: true, 7 pathRewrite: { 8 '^/api': '' 9 } 10 } 11 }
2.main.js:配置axios信息
1 import axios from 'axios' 2 3 Vue.prototype.$axios = axios 4 5 axios.defaults.baseURL = '/api'; 6 axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';//配置請求頭信息。 7 axios.defaults.headers.common['accessToken'] = 'FA4C308D5E8F6409E01344ADDAEB4C71';
3.vue文件,使用axios請求數據:
1 this.$axios({ 2 method: "post", 3 url: "/report/getReportFolders", 4 data: {}, 5 }).then((res) => { 6 console.log(res); 7 });
vue.config.js文件完整代碼:
1 module.exports = { 2 /* 部署生產環境和開發環境下的URL:可對當前環境進行區分,baseUrl 從 Vue CLI 3.3 起已棄用,要使用publicPath */ 3 /* baseUrl: process.env.NODE_ENV === 'production' ? './' : '/' */ 4 publicPath: process.env.NODE_ENV === 'production' ? '/public/' : './', 5 /* 輸出文件目錄:在npm run build時,生成文件的目錄名稱 */ 6 outputDir: 'dist', 7 /* 放置生成的靜態資源 (js、css、img、fonts) 的 (相對於 outputDir 的) 目錄 */ 8 assetsDir: "assets", 9 /* 是否在構建生產包時生成 sourceMap 文件,false將提高構建速度 */ 10 productionSourceMap: false, 11 /* 默認情況下,生成的靜態資源在它們的文件名中包含了 hash 以便更好的控制緩存,你可以通過將這個選項設為 false 來關閉文件名哈希。(false的時候就是讓原來的文件名不改變) */ 12 filenameHashing: false, 13 /* 代碼保存時進行eslint檢測 */ 14 lintOnSave: true, 15 /* webpack-dev-server 相關配置 */ 16 devServer: { 17 /* 自動打開瀏覽器 */ 18 open: false, 19 /* 設置為0.0.0.0則所有的地址均能訪問 */ 20 host: '0.0.0.0', 21 port: 8081, 22 https: false, 23 hotOnly: false, 24 /* 使用代理 */ 25 proxy: { 26 '/api': { 27 target: '', //后端地址 28 secure: false, // 如果是https接口,需要配置這個參數 29 ws: true,//是否代理websockets 30 changeOrigin: true, 31 pathRewrite: { 32 '^/api': '' 33 } 34 } 35 } 36 }, 37 }