Vue 学习之 axios

news2024/11/18 21:53:05

目录

执行安装命令:npm install axios

 使用的时候导入

axios以data,params,headers传参方式的区别

axios封装


是一个基于 promise 的 网络请求库,作用于浏览器和 node.js 中。使用Axios可以在前端项目中发送各种方式的HTTP请求。

停止服务,在所在项目终端,

执行安装命令:npm install axios

查看是否安装成功,依赖中存在axios就是安装成功

 使用的时候导入

import axios from 'axios'

axios 官网

请求配置 | Axios中文文档 | Axios中文网

<template>
    登录 <input type="button" @click="handss" />
    状态 <input type="button" @click="state" />
    两种形式 <input type="button" @click="twost" />
</template>

<script>
import axios from 'axios'

export default {
    data() {

    },

    methods: {
        handss() {
            axios.post('/api/admin/employee/login', {
                username: 'admin',
                password: '123456'
            }).then(res => {
                console.log(res.data)
            }).catch(error => {
                console.log(error.response)
            })
        },
        state() {
            axios.get('/api/admin/shop/status', {
                headers: {
                    token: 'eyJhbGciOiJIUzI1NiJ9.eyJlbXBJZCI6MSwiZXhwIjoxNzE5MTEzNzg1fQ.e1lKC_hCAw1jAKzqgkIUEzWlJ0iDBqSQUs8-L4EUYgI'
                }
            })
        },
        twost() {
            axios({
                url: '/api/admin/employee/login',
                method: 'post',
                data: {
                    username: 'admin',
                    password: '123456'
                }
            }).then((res) => {
                console.log(res.data.data.token)
            }).catch((error)=>{
                console.log(error)
            })
        }
    }



}

</script>

 

axios以data,params,headers传参方式的区别

  • params的对象参数名和值,axios的源码会把参数和值,拼接在ulr?后面拼接给后台

  • data的对象参数和值,axios源码会把参数和值,拼接·在请求体(body参数)

  • headers将传递的参数挂载到请求头

axios封装

下面几乎 就是固定写法,拿来就用,封装了基础的路径,对每个请求进行拦截并添加token,

import axios from 'axios'
const instance = axios.create({
    // 基路径
    baseURL: 'http://localhost:8080/kongkongSelect',
    timeout: 1000,
  });
  // 添加请求拦截器
 instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // 存在token则往header里面添加一个token
    if(localStorage.getItem('token')){
        config.headers.token=localStorage.getItem('token')
    }
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });
// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    // 如果后台报错提示一下   ,后台报错和axios 报错  执行的位置不一样
    if(response.data.code!=200){
        //   提示一下
    }
    //这个地方返回的东西就是你调用的时候res得到的东西
    return response;
  }, function (error) {
    //axios报错执行这里
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  });
 // 最后导出
  export default instance

最后需要export default  ,export default  和export 区别看这篇文章

export 与export default 区别

http://t.csdnimg.cn/i7gOgicon-default.png?t=N7T8http://t.csdnimg.cn/i7gOg

调用上面导出, export default则不需要{ },并可以起任意名称,因为只有一个不会引起歧义

import request from '@/utils/request'
/**
 *
 * 员工管理
 *
 **/
// 登录
export const login = (data: any) =>
  request({
    'url': '/employee/login',
    'method': 'post',
// `data` 是作为请求体被发送的数据 仅适用 'PUT', 'POST', 'DELETE 和 'PATCH' 请求方法
    'data': data
  })
   // 分页查询
   export const EmployeepageList = (params: any) =>
    request({
      'url': `/employee/page`,
      'method': 'get',
//   可以简写为params,但前提是参数是params
      'params':params 
    })

传递数据的时候一般传递的是JSON字符串

注:在使用axios时,经常会遇到跨域问题。为了解决跨域问题,可以在 vue.config.js 文件中配置代理:

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer:{
    port:8081,
    proxy:{
      '/api':{
        target: 'http://localhost:8080',
         pathRewrite: {
         '^/api': ''
         }
      }
    }
  }
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1867509.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【redis】redis安装

1、安装前准备 1.1环境准备 VMware安装 参考博文&#xff1a;【VMware】VMware虚拟机安装_配置_使用教程_选择虚拟机配置选项,设置dvd镜像为 点击启动虚拟机-CSDN博客 安装centOS的linux操作系统 xshell xftp 参考博文&#xff1a;【Linux】Xshell和Xftp简介_安装_VMwar…

经验分享,免费商标查询网站

有时候想快速查询商标状况&#xff0c;官方网站比较慢&#xff0c;这里分享一个免费快速的网站。 网址&#xff1a;https://www.sscha.com/ 截图&#xff1a;

《Redis设计与实现》阅读总结-3

第 12 章 事件 Redis服务器是一个事件驱动程序&#xff0c;服务器需要处理两类事件&#xff1a;文件事件和时间事件 一、文件事件 1. 文件处理器&#xff1a;Redis基于Reactor模式开发了自己的网络事件处理器被称为文件处理器 文件事件处理器使用I/O多路复用程序来同时监听多…

vue 中监听生命周期事件

vue 中监听生命周期事件 常见的添加自定义事件的写法希望在子组件挂载时通知父组件在模板上监听组件生命周期vue3 生命周期事件吗&#xff1f;jsx 中如何监听生命周期事件呢&#xff1f;通过 vNode 操作 html vue3 父子组件的生命周期的执行顺序是怎样的&#xff1f;小结 vue2 …

Swift中的二分查找:全面指南

Swift中的二分查找&#xff1a;全面指南 简介 二分查找是计算机科学中的经典算法&#xff0c;被广泛用于在已排序的数组中高效地搜索目标值。与线性查找逐个检查每个元素不同&#xff0c;二分查找不断将搜索区间减半&#xff0c;因此在处理大数据集时要快得多。 在这篇博客中…

FairyGUI框架下unity发布微信小游戏问题记录

一、unity发布微信小游戏中文字体不显示 在unity中发布WebGl项目时&#xff0c;如果使用的是默认字体就会出现中文字体丢失现象。 这个是在unity中 这个是在微信开发者工具里面显示的 解决办法&#xff1a; 打开我的电脑 C:\Windows\Fonts 随便找一个文件结尾为.ttf的字体…

如何实现系统重装和还原?电脑重装系统的详细介绍(内附系统还原教程)

我们使用电脑办公时&#xff0c;如果出现卡顿、运行缓慢、蓝屏崩溃或病毒感染时&#xff0c;可以通过重装系统的方法来解决。但是电脑系统还原和系统重装都比较麻烦&#xff0c;很多电脑小白跟小编一样&#xff0c;无从下手。 系统重装&#xff1a;重装系统则是将电脑系统完全清…

化茧成蝶 | 继HuggingFace首家落地大模型具身智能场景

关于具身智能的起源 近年来&#xff0c;大语言模型&#xff08;LLMs&#xff09;的兴起给机器人领域带来了革命性的改变&#xff0c;大模型赋予了传统机器人理解和推理的能力&#xff0c;让具身智能这一概念再度出现在大众的视角中。OpenCSG 作为国内 AI 开源社区的先锋&#…

如何快速解决验证码图像问题 | 最佳图像(OCR)验证码解决工具

你是否曾经遇到过陷入一个看似无尽的 CAPTCHA 挑战中&#xff0c;努力识别扭曲的字符或数字&#xff1f;这些令人抓狂的 CAPTCHA 是为了确保你是人类而不是机器人&#xff0c;但它们也给真正的用户带来了头痛。那么&#xff0c;有没有快速解决这些 CAPTCHA 图像的方法&#xff…

Python jsonschema库:数据验证的强大工具

更多Python学习内容&#xff1a;ipengtao.com 在处理JSON数据时&#xff0c;验证其结构和内容的正确性至关重要。jsonschema是一个用于描述和验证JSON文档结构的标准&#xff0c;Python的jsonschema库是实现这一标准的强大工具。本文将详细介绍jsonschema库的功能、安装与配置、…

安卓webview加载vue打包后的项目

<?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"ty.sql.dqwgsw"><uses-permission android:name"android.permission.INTERNET" /&g…

需求之 实现获取调试信息在h5页面,在手机端可以查看调试(二)

事实证明 chatgpt很好用&#xff0c;有不懂的问题可以问它 https://zhuanlan.zhihu.com/p/690118775 国内外9个免费的ChatGPT网站 我筛选出来的比较好用免费的网站 fchat.dykyzdh.cn/ 这个也可以 阿里云的 通义灵码 在vscode中安装使用 而且阿里云有一个产品&#xff0c;可以…

国产音频放大器工作原理以及应用领域

音频放大器是在产生声音的输出元件上重建输入的音频信号的设备&#xff0c;其重建的信号音量和功率级都要理想&#xff1a;如实、有效且失真低。音频范围为约20Hz&#xff5e;20000Hz&#xff0c;因此放大器在此范围内必须有良好的频率响应&#xff08;驱动频带受限的扬声器时要…

STM32F1+HAL库+FreeTOTS学习1——FreeRTOS入门

STM32F1HAL库FreeTOTS学习1——FreeRTOS入门 裸机开发与操作系统嵌入式操作系统简介FreeRTOS简介FreeRTOS的几个重要概念任务调度器任务状态状态列表 裸机开发与操作系统 在以往的嵌入式学习中&#xff0c;我们最常用的就是裸机开发&#xff0c;所谓裸机开发就是指在没有操作系…

AI开发Windows环境搭建

文章目录 1. GPU 支持检查2. 安装 Anaconda3. 创建 PyTorch 虚拟环境3.2 创建虚拟 PyTorchEnv 环境3.3 检查、激活、推出虚拟环境3.4 虚拟环境中python包管理3.5 虚拟环境中安装 PyTorch 框架 4. TensorFlow 安装 1. GPU 支持检查 打开 Task Manager (任务管理器&#xff09;&…

使用VMware创建Ubuntu 24.04【一】

相关链接下载地址 VMware https://www.vmware.com/content/vmware/vmware-published-sites/cn/products/workstation-pro/workstation-pro-evaluation.html.html.html Ubuntu 24.04 LTS https://cn.ubuntu.com/download/desktop 虚拟机创建 1、打开VNware软件&#xff0c;点…

Qt小项目 | 实现迅雷设置界面

文章目录 一、手写代码实现迅雷设置界面 一、手写代码实现迅雷设置界面 使用Qt控件&#xff08;如&#xff1a;QListWidget与QScrollArea等&#xff09;与布局实现腾讯会议登陆界面。设置界面除基本设置界面外&#xff0c;其他界面都是以图片的形式嵌入到项目中并没有手写代码。…

Mac 如何安装 wget

1.安装 Homebrew2.安装 wget3.检测 wget 是否安装成功 1.安装 Homebrew 在安装 wget 之前需要安装一个适用于 mac 的包管理器 Homebrew&#xff0c;打开 mac 终端执行如下命令进行安装&#xff1a; /usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/h…

DDD学习笔记二

模型的要素——用例、视图和构造块 模型的构建步骤 1&#xff09;从用例场景开始&#xff0c;给模型输入概念、属性、术语。 2&#xff09;构建静态领域模型&#xff08;类图&#xff09;&#xff0c;发现领域概念和对象属性。 3&#xff09;构建动态领域模型&#xff08;时序图…

自动化物流控制系统WCS应用与异常处理

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 完整版文件和更多学习资料&#xff0c;请球友到知识星球【智能仓储物流技术研习社】自行下载 WCS的定义与作用&#xff1a; 物流仓储设备…