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 相关文章推荐
javascript实现unicode和字符的互相转换
Jul 18 Javascript
JS仿flash上传头像效果实现代码
Jul 18 Javascript
JavaScript中的property和attribute介绍
Dec 26 Javascript
基于mootools插件实现遮罩层新手引导
May 24 Javascript
eval的两组性能测试数据
Aug 17 Javascript
js实现简单登录功能的实例代码
Nov 09 Javascript
使用js判断控件是否获得焦点
Jan 03 Javascript
jquery判断元素的子元素是否存在的示例代码
Feb 04 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
May 26 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
Aug 25 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
Jun 07 Javascript
Vue 使用typescript如何优雅的调用swagger API
Sep 01 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 Squid中可缓存的动态网页设计
2008/09/17 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
php常见的魔术方法详解
2014/12/25 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
Prototype框架详解
2015/11/25 Javascript
js实现表格筛选功能
2017/01/18 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
对python3中, print横向输出的方法详解
2019/01/28 Python
pow在python中的含义及用法
2019/07/11 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
python如何删除文件、目录
2020/06/23 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
Python调用ffmpeg开源视频处理库,批量处理视频
2020/11/16 Python
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
计算机应届毕业生自荐信范文
2014/02/23 职场文书
预备党员的自我评价
2014/03/12 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
公司庆典主持词
2015/07/04 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
Python中常见的导入方式总结
2021/05/06 Python
详解SQL报错盲注
2022/07/23 SQL Server