html+Vue+封装axios实现发送请求

在html中使用Vue和Axios时,可以在HTML中引入Vue库和Axios库,然后使用Vue的语法和指令来创建Vue组件和模板。在Vue组件中,你可以使用Axios发送HTTP请求来获取数据,并将数据绑定到Vue模板中进行展示。

<template>
  <div>
    <button @click="getData">发送请求</button>
    <div>{{ response }}</div>
  </div>
</template>

<script>
// 导入Vue和axios
import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js';
import axios from 'axios';

// 创建Vue应用
const app = createApp({
  data() {
    return {
      response: ''
    };
  },
  methods: {
    async getData() {
      try {
        const response = await axios.get('https://api.example.com/data');
        this.response = response.data;
      } catch (error) {
        console.error(error);
      }
    }
  },
  created() {
    // 设置请求拦截器
    axios.interceptors.request.use(
    // config就是本次发请求的信息
      config => {
        // 在发送请求之前做些什么
        console.log('请求拦截器');
        return config;
      },
      error => {
        // 对请求错误做些什么
        console.error(error);
        return Promise.reject(error);
      }
    );

    // 设置响应拦截器
    axios.interceptors.response.use(
      response => {
        // 对响应数据做些什么
        console.log('响应拦截器');
        return response;
      },
      error => {
        // 对响应错误做些什么
        console.error(error);
        return Promise.reject(error);
      }
    );
  }
});

// 挂载Vue应用到指定元素上
app.mount('#app');
</script>

这段代码在HTML中使用了Vue,使用axios并设置了请求拦截器和响应拦截器。它实现了在页面中发送请求并显示响应数据的功能。

在模板中,有一个按钮,当点击按钮时,会调用getData方法发送请求。响应数据会显示在页面上的response变量中。

在created生命周期钩子中,我们设置了请求拦截器和响应拦截器。请求拦截器会在发送请求之前执行,可以在此处进行一些操作,比如添加请求头、修改请求参数等。响应拦截器会在接收到响应数据之后执行,可以在此处对响应数据进行处理,比如解析数据、错误处理等。

这样,每次发送请求时,拦截器会先执行相应的操作,然后再发送请求或处理响应数据。

想要实现封装Axios以及请求拦截器和响应拦截器,只需将相应的操作提取出来,放在一个文件夹下,在需要使用的地方使用script引入文件即可。 

/** axios封装
 * 请求拦截、相应拦截、错误统一处理
 */

每一个请求都会经过请求拦截和响应拦截

请求拦截器:常常用于Token的主动处理 ,给每一个请求添加请求头token 对请求异常抛出。

响应拦截器:常常用于简化axios默认加了一层的data Token被动处理 对请求异常抛出。

响应拦截器:简化axios默认加了一层的data Token被动处理 对请求异常抛出。

axios默认加了一层data

这个res包括这个请求响应回来的所有信息

所有的接口请求都会回到这里

获取到本次请求得到的数据

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是封装Vue3 + TypeScript + Axios的示例代码: 1. 创建一个`api.ts`文件,用于存放API请求路径: ```typescript // api.ts const BASE_URL = 'https://api.example.com'; export const API_PATHS = { getUsers: `${BASE_URL}/users`, getPosts: `${BASE_URL}/posts`, // 添加其他API路径... }; ``` 2. 创建一个`request.ts`文件,用于封装Axios请求方法: ```typescript // request.ts import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'; import { API_PATHS } from './api'; // 创建一个Axios实例 const instance = axios.create({ baseURL: API_PATHS.BASE_URL, timeout: 5000, // 设置请求超时时间 }); // 请求拦截器 instance.interceptors.request.use( (config: AxiosRequestConfig) => { // 在请求发送之前可以进行一些处理,例如添加请求头等 return config; }, (error: any) => { // 处理请求错误 return Promise.reject(error); } ); // 响应拦截器 instance.interceptors.response.use( (response: AxiosResponse) => { // 在接收到响应数据之前可以进行一些处理,例如解析响应数据等 return response.data; }, (error: any) => { // 处理响应错误 return Promise.reject(error); } ); // 封装GET请求方法 export const get = (url: string, params?: any) => { return instance.get(url, { params }); }; // 封装POST请求方法 export const post = (url: string, data?: any) => { return instance.post(url, data); }; // 添加其他请求方法,例如PUT、DELETE等... ``` 3. 在需要使用Axios的地方,引入`request.ts`并调用封装请求方法: ```typescript import { get, post } from './request'; // 使用GET请求获取用户列表 get(API_PATHS.getUsers) .then((response: any) => { // 处理响应数据 console.log(response); }) .catch((error: any) => { // 处理请求错误 console.error(error); }); // 使用POST请求创建新用户 const newUser = { name: 'John', age: 25 }; post(API_PATHS.getUsers, newUser) .then((response: any) => { // 处理响应数据 console.log(response); }) .catch((error: any) => { // 处理请求错误 console.error(error); }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值