vue中使用axios以及拦截器配置

安装

npm install axios --save vue-axios

axios配置

  • 新建utils/axios.js
import axios from "axios";

axios.create({
    baseURL: '127.0.0.1:8080/api',  //设置服务器地址
    timeout: 60 * 1000, // 超时设置
    withCredentials: true, // 检查跨站点访问控制
    changeOrigin: true//允许跨域
})

axios.interceptors.request.use(
    request => {
        console.log("请求成功");
        return request;
    },
    error => {
        return Promise.reject(error);
    }
);
axios.interceptors.response.use(
    response => {
        console.log("响应成功");
        return response;
    },
    error => {
        return Promise.reject(error);
    }
);

export default axios
  • 配置main.js
import {createApp} from 'vue'
import App from './App.vue'
import axios from "./utils/axios";
import VueAxios from "vue-axios";

createApp(App)
    .use(VueAxios, axios)
    .mount('#app')

配置跨域

module.exports = {
    publicPath: "/",
    outputDir: "dist",
    lintOnSave: false,
    devServer: {
        host: "127.0.0.1",
        port: 8888,
        open: true,
        proxy: {
            '/': {
                target: "127.0.0.1:8080/api",
                changeOrigin: true
            }
        }
    }
}

测试

  • Home.vue
<template>
  <div>
    <button @click="testBth">测试</button>
  </div>
</template>
<script>
import axios from "axios";

export default {
  name: "Home",
  methods: {
    testBth() {
      this.axios.get("/test").then(res => {
        console.log(res.data);
      }).catch(err => {
        console.log(err);
      })
    },
  }
}
</script>

<style scoped lang="less">

</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_何同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值