本地運行vue項目跨域問題完美解決方案(使用axios)


在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的前綴。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM