axios封装与传参示例详解


Posted in Javascript onOctober 18, 2020

1.开发环境 vue+typescript

2.电脑系统 windows10专业版

3.在开发的过程中,我们会经常使用到 axios进行数据的交互,下面我来说一下,axios封装和传参!

4-1:下面结构如下:

axios封装与传参示例详解

4-2:request.js代码如下:

import axios from 'axios'
import qs from 'qs'
axios.defaults.timeout = 2000000;      //响应时间
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';  //配置请求头
// axios.defaults.baseURL = 'http://192.168.137.208:3000/'; //配置接口地址

//POST传参序列化(添加请求拦截器)
axios.interceptors.request.use((config) => {
 //在发送请求之前做某件事
 // config.headers.Accept="appliaction/json,text/plan";
 if(config.method === 'post'){
  config.data = qs.stringify(config.data);
 }
 return config;
},(error) =>{
 console.log('错误的传参')
 return Promise.reject(error);
});
// axios.interceptors.response.use((res) => {
//  //对响应数据做些事
//  if (!res.data) {
//  return Promise.resolve(res);
//  }
//  return res;
// }, (error) => {
//  console.log(error);
//  console.log('网络异常')
//  return Promise.reject(error);
// });

//返回状态判断(添加响应拦截器)
axios.interceptors.response.use((res) =>{
 //对响应数据做些事
 if(!res.data.success){
  return Promise.resolve(res);
 }
 return res;
}, (error) => {
 console.log('网络异常')
 return Promise.reject(error);
});

//返回一个Promise(发送post请求)
export function fetchPost(url,param) {
 return new Promise((resolve, reject) => {
  axios.post(url,param)
   .then(response => {
    resolve(response);
   }, err => {
    reject(err);
   })
   .catch((error) => {
    reject(error)
   })
 })
}
// 返回一个Promise(发送get请求)
export function fetchGet(url,param) {
 return new Promise((resolve, reject) => {
  axios.get(url,{params:param})
   .then(response => {
    resolve(response)
   }, err => {
    reject(err)
   })
   .catch((error) => {
    reject(error)
   })
 })
}
export default {
 fetchPost,
 fetchGet,
}

//注意:请求头的配置,决定了传参的方法和格式,请求头的配置至关重要

5.SheBei.ts代码如下:

import {fetchPost,fetchGet} from '@/utils/request'
export function feng(feng){
 return fetchPost('/feng',feng);
}

6.Home.vue请求代码如下:

mounted(){
  let a:any={
   "name":"111",
   "pass":"000"
  }
  feng(a).then((res)=>{
   console.log(res);
  })
 }

7.效果如下:

axios封装与传参示例详解

8.在node.js中输入如下:

axios封装与传参示例详解

//可以看到,接受到了前端传过来的参数!

9.参数的传递取决于,request.ts中请求头的配置!

10.请求头配置如下:

--第一种
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; //请求体中的数据会以普通表单形式(键值对)发送到后端
--第二种
axios.defaults.headers.post['Content-Type'] ='application/json'; // 请求体中的数据会以json字符串的形式发送到后端
--第三种
axios.defaults.headers.post['Content-Type'] ='multipart/form-data'; // 它会将请求体的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件

11.使用10第一种,传参效果如下:

axios封装与传参示例详解

12.使用10第二种,传参效果如下:

axios封装与传参示例详解

//注意:使用这种方法,需要修改request.ts代码:

axios封装与传参示例详解

13.使用10第三种,传参效果如下:

axios封装与传参示例详解

14.本期的教程到了这里就结束啦,让我们一起努力走向巅峰!

总结

到此这篇关于axios封装与传参示例的文章就介绍到这了,更多相关axios封装与传参内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jquery $.each()使用探讨
Sep 23 Javascript
SinaEditor使用方法详解
Dec 28 Javascript
JavaScript Math 对象常用方法总结
Apr 28 Javascript
jQuery实现的兼容性浮动层示例
Aug 02 Javascript
利用AngularJs实现京东首页轮播图效果
Sep 08 Javascript
ES6中Math对象的部分扩展
Feb 20 Javascript
Vue上传组件vue Simple Uploader的用法示例
Aug 25 Javascript
利用JS判断客户端类型你应该知道的四种方法
Dec 22 Javascript
[原创]jquery判断元素内容是否为空的方法
May 04 jQuery
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
May 28 Javascript
layui 富文本赋值,取值,取纯文本值的实例
Sep 18 Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 Javascript
详解如何使用React Hooks请求数据并渲染
Oct 18 #Javascript
js中复选框的取值及赋值示例详解
Oct 18 #Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
Oct 18 #Javascript
详解如何在Javascript中使用Object.freeze()
Oct 18 #Javascript
从表单校验看JavaScript策略模式的使用详解
Oct 17 #Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
Oct 17 #Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
Oct 16 #Javascript
You might like
PHP 遍历文件实现代码
2011/05/04 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
JavaScript触发器详解
2007/03/10 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
JS全局变量和局部变量最新解析
2016/06/24 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
Django中的AutoField字段使用
2020/05/18 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
后勤人员自我评价怎么写
2013/09/19 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
服装店员工管理制度
2015/08/07 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
辞职申请书范本
2019/05/20 职场文书
python 逐步回归算法
2021/04/06 Python
在Python 中将类对象序列化为JSON
2022/04/06 Python
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers