前端项目运行于localhost:8080

想要请求的接口是http://222.19.236.142:7070/info2

如果直接axios.get(),会遇见跨域问题

开发环境中,我们可以通过配置代理的方式来解决

首先,在src/main.js下

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import vuetify from './plugins/vuetify'

import axios from 'axios'
Vue.prototype.$axios = axios
axios.defaults.baseURL = '/api'  //关键代码

Vue.config.productionTip = false

new Vue({
  router,
  vuetify,
  render: h => h(App)
}).$mount('#app')

然后,在项目根目录vue.config.js下

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: [
    'vuetify'
  ],
  devServer: {
    proxy: {
      '/api': {
        target: 'http://222.19.236.142:7070/', // 接口的域名
        // secure: false,  // 如果是https接口,需要配置这个参数
        changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
        pathRewrite: {
          '^/api': ''
        }
      }
    },
  }
})

使用中

axios.get('/info2').then(res => console.log(res.data))

Logo

一站式 AI 云服务平台

更多推荐