在vue cli3中的配置
在package.json同級目錄下新建vue.config.js文件
//vue.config.js module.exports = { devServer: { proxy: { '/api': { // 以'/bpi'開頭的請求會被代理進行轉發,如果要轉發所有則使用:/** target: 'http://localhost:8081', // 要發向的后台服務器地址 如果后台服務跑在后台開發人員的機器上,就寫成 `http://ip:port` 如 `http:192.168.12.213:8081` ip為后台服務器的ip changeOrigin: true , //在本地會創建一個虛擬服務端,然后發送請求的數據,並同時接收請求的數據,這樣服務端和服務端進行數據的交互就不會有跨域問題 pathRewrite:{ // 路徑重寫, '^/api': '' // 替換target中的請求地址,也就是說以后你在請求http://api.douban.com/v2/XXXXX這個地址的時候直接寫成/api即可。 } } } } }
在main.js中,配置數據所在服務器的前綴(即固定部分),代碼如下:
// 項目入口,配置全局vue import Vue from 'vue' import VueRouter from './router/routes.js' import Store from './store/index.js' import './assets/less/index.less' import App from './App.vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-default/index.css' import axios from 'axios' Vue.prototype.$axios = axios axios.defaults.baseURL = '/api' //關鍵代碼 Vue.config.productionTip = false Vue.use(ElementUI); new Vue({ router:VueRouter, store:Store, template:'<App/>', components: {App} }).$mount('#app') // 默認進入商品模塊 // VueRouter.push({ path: '/home' })
關鍵代碼:axios.defaults.baseURL = '/api',作用是我們每次發送的請求都會帶一個/api的前綴。