当前位置: 首页 > news >正文

Vue 学习之 axios

目录

执行安装命令: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里面添加一个tokenif(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.lryc.cn/news/384484.html

相关文章:

  • Python学习笔记17 -- 猜数字小游戏2
  • 【系统架构设计师】七、信息安全技术基础知识(信息安全的概念|信息安全系统的组成框架|信息加解密技术)
  • CMMM Plus+ Calculus Update 超级游戏大作 游戏说明
  • Java OA系统任务协作模块
  • 深入解析Maven常用命令
  • 【Docker】镜像
  • 力扣最新详解5道题:两数之和三数之和四数之和
  • 通讯:单片机串口和电脑通讯
  • ubuntu22.04 设置双屏
  • 【FPGA-常见问题及解决方案】
  • 【第3章】MyBatis-Plus持久层接口之Service Interface(上)
  • Nodemon的入门及使用
  • cesium 实现三维无人机航拍过程实景效果
  • Rust:使用 Warp 框架编写基于 HTTPS 的 RESTful API
  • 测试开发工程师需要掌握什么技能?
  • SpelExpressionParser评估SpEL(Spring Expression Language)表达式的解析器
  • C#学习系列之DataGrid无故添加空行
  • 详解Alibaba Cloud Linux 3.2104 LTS 64位镜像操作系统
  • springboot异常产生原因
  • Redis 7.x 系列【8】数据类型之哈希(Hash)
  • jetson 安装 Rustdesk失败
  • Vue原生写全选反选框
  • typescript学习回顾(三)
  • 算尽天下财,铸就大明梦 —— 大明钱算子夏元吉的传奇一生
  • openCV3.0 C++ 学习笔记补充(自用 代码+注释)---持续更新 二(51-)
  • 读AI新生:破解人机共存密码笔记13有益机器
  • Spring Boot中使用Swagger生成API文档
  • 解决 macOS 中“无法验证开发者”的问题
  • Emp.dll文件丢失?理解Emp.dll重要性与处理常见问题
  • 知识平台管理系统设计