vue跨域访问后台api

2020-02-06  本文已影响0人  heliping_peter

1.设置代理
后台为本机端口9090,所以代理为本机端口9090,url以api开头,并访问后台时去掉api
vue.config.js

module.exports = {
    publicPath: '/',
    outputDir: 'dist',
    devServer: {
      open: true,
      host: 'localhost',
      port: '8081',
      proxy: {
        '/api': {
          target: 'http://localhost:9090', // 要请求的地址
          ws: true,
          changeOrigin: true,
          pathRewrite: {
            '^/api': ''
          }
        }
      }
    }
  };

2.设置入口
main引入axios,并且将axios设置为vue的特性

import Vue from 'vue'
import App from './App.vue'
import router from '@/router'
import axios from 'axios'
 
Vue.config.productionTip = false
Vue.prototype.$axios = axios
new Vue({
 
  router,
  render: h => h(App),
}).$mount('#app')

3.使用api访问后台
后台使用axios,后台的url前面需要加api,实现跨域

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <p>
      gogogo,{{ msg }}
     
    </p>

   
  </div>
</template>

<script>

export default {
  name: 'Abc',
  data() {
    return {
      msg: ''
    }
    
  },
  created() {
        this.$axios.get('/api/home').then(result=>{            
            this.msg = result.data;
        })
    }
}



</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
  margin: 40px 0 0;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>
上一篇 下一篇

猜你喜欢

热点阅读