axios的学习与使用

本次系统分析与设计期末挣闲钱项目,我负责前端部分的实现。按照项目要求文档中的描述,我使用了vue这一JavaScript框架来完成前端界面的实现。

为了实现前后端之间的通信,使用了axios。axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端。 它具有以下特征:

  • 从浏览器中创建 XMLHttpRequest
  • 从 node.js 发出 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求和响应数据
  • 取消请求
  • 自动转换JSON数据
  • 客户端支持防止 CSRF/XSRF

本篇博客主要介绍axios的相关内容。

安装

  • 类似于iVew的安装:

    • 使用 “npm install axios --save”进行下载安装。

基本内容:

  • 网上样例:

      axios.get('/user?ID=12345').then(function (response) {
          console.log(response);
      }).catch(function (error) {
          console.log(error);
      });
      
      // 通过 params 对象传递参数
      axios.get('/user', {
          params: {
              ID: 12345
          }
      }).then(function (response) {
          console.log(response);
      }).catch(function (error) {
          console.log(error);
      });
      //执行 POST 请求
      
      axios.post('/user', {
          firstName: 'Fred',
          lastName: 'Flintstone'
      }).then(function (response) {
          console.log(response);
      }).catch(function (error) {
          console.log(error);
    
  • 使用axios时,需要在main.js中导入axios并将其写入vue原型。

      axios.defaults.baseURL = 'http://172.18.32.30:3000'
      axios.defaults.withCredentials = true;
      Vue.prototype.$axios = axios;
    
  • 在项目中使用axios获取用户信息,使用response.data读取JSON数据,url为后端写好的api的url:

      getUserInfo(){
          let vm = this;
          this.$axios.get(url, {
    
          })
          .then(function(response) {
              let data = response.data;
              if (data.code == 200) {
                  let userInfo = data.data;
                  vm.username = userInfo.username;
                  vm.getTasks(vm.typeSelect);
              }
    
          })
          .catch(function (error) {
              if (error.response.status == 401) {
                  vm.$Notice.warning({
                      title: '错误',
                      desc:  "请重新登录"
                  });
                  vm.$router.push({name: 'login'});
              }
          });
      },
    
  • post方法与get类似。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3 是目前最新的 Vue 版本,相信很多人都在使用它。而 axios 则是一个非常优秀的 HTTP 库,已成为前端开发中不可或缺的一部分。在 Vue 3 中使用 axios,我们可以将其进行封装以方便调用。 以下是一个简单的 axios 封装示例: ```javascript import axios from 'axios' const instance = axios.create({ baseURL: 'https://api.example.com', timeout: 10000 }) instance.interceptors.request.use( config => { // 在请求发送之前做些什么 return config }, error => { // 对请求错误做些什么 return Promise.reject(error) } ) instance.interceptors.response.use( response => { // 对响应数据做些什么 return response }, error => { // 对响应错误做些什么 return Promise.reject(error) } ) export default instance ``` 在上面的代码中,我们首先使用 `axios.create()` 方法创建了一个 axios 实例,并设置了基本的配置信息,包括请求的基础 URL 和超时时间。 接下来,我们使用 `instance.interceptors.request.use()` 方法添加了一个请求拦截器,用于在请求发送之前做一些自定义的操作,比如添加请求头、修改请求参数等。同样的,我们还可以使用 `instance.interceptors.response.use()` 方法添加一个响应拦截器,在接收到响应数据之后对其进行处理。 最后,我们将封装好的 axios 实例导出,以便在项目中使用。 下面是一个使用封装后的 axios 实例的例子: ```javascript import axios from '@/utils/axios' export function getUserInfo(id) { return axios({ url: '/user/info', method: 'get', params: { id } }) } ``` 在上面的代码中,我们使用 `import` 导入了封装后的 axios 实例,并使用 `axios()` 方法发送了一个 GET 请求,其中包含了请求的 URL、请求方法和请求参数。在这个例子中,我们请求了用户信息,并将用户 ID 作为参数传递给了后端。 这就是一个简单的 axios 封装示例,当然,实际项目中可能会有更多的配置和自定义操作。但是不管怎样,通过 axios 封装,我们可以让我们的项目更加规范、易于维护。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值