vue:axios二次封装,接口统一存放、封装jsonp+promise

简介: 基于框架:vue一、基于http库:axios基本用法:1.通过node安装:npm install axios  2. 在项目目录的src文件夹下新建apis文件夹,在该文件夹内新建index.

基于框架:vue

一、基于http库:axios

基本用法:

1.通过node安装:npm install axios

  2. 在项目目录的src文件夹下新建apis文件夹,在该文件夹内新建index.js文件,内容如下代码块:

对接口设置拦截器

img_b3b8f7b7401cacea5a7d1821b251aba7.png
img_0edea129ee68327294f103d2c31149f4.png

接口请求数据

img_7ecd529425cb95a6b1e6cb186073d76d.png

接着要在src目录下边创建一个store文件,然后在文件里边创建一个actions.js文件和index.js文件

在actions.js文件里边对请求数据进行封装

img_007e06f52358a3e9810c55c56238a6e8.png

在index.js文件引入actions.js文件,并在main.js文件下边引入store下边的index.js文件并将store暴露出去

img_80434fc189ce27bdc0c18cfc64d0d089.png

二、jsonp原理

通过动态创建<script>标签,src指向数据地址,其中callback参数作为函数的名来包裹住JSON数据返回客户端,也就是说,只要服务端提供的js脚本是动态生成的就行了,这样调用者可以传一个参数告诉服务端“我想要一段xx函数的js代码,请你返回给我”,于是服务器就可以按照客户的需求来生成js脚本并响应了。

安装:jsonp  npm install jsonp

安装qs  npm install qs (由于的jsonp请求都是get请求,所以引入qs)

在需要请求接口的文件引入jsonp

img_e259ff4aab6ee1690428f910d4d493c8.png

首先查看携带大参数及参数格式

img_3d2a5e9b1f4370265a1697c81b53d4a8.png

对参数和jsonp请求做封装

img_d4687d96ba0c611fbf78d1e347f492d4.png

调用上边的函数

img_45c1fba75a2aebecee05d3839f97e007.png

以上当服务端返回的数据是jsonp格式的时候,vue中可以使用jsonp插件来处理。

目前在自己的项目组件化中使用,有写的不对的地方欢迎大家留言指出~

相关文章
|
1月前
|
JavaScript
vue封装axios(用interceptors封装)
vue封装axios(用interceptors封装)
13 0
|
4天前
|
JavaScript
vue页面加载时同时请求两个接口
vue页面加载时同时请求两个接口
|
5天前
|
存储 JavaScript
Vue当前时间与接口返回时间的判断
Vue当前时间与接口返回时间的判断
12 0
|
3天前
|
移动开发 前端开发
vue3 Element-Plus封装的el-tree-select的使用
vue3 Element-Plus封装的el-tree-select的使用
vue3 Element-Plus封装的el-tree-select的使用
|
20天前
|
存储 算法 JavaScript
< 今日小技巧:Axios封装,接口请求增加防抖功能 >
今天这篇文章,主要是讲述对axios封装的请求,由于部分请求可能存在延时的情况。使得接口可能存在会被持续点击(即:接口未响应的时间内,被持续请求),导致重复请求的问题,容易降低前后端服务的性能!故提出给axios封装的配置里面,新增一个防抖函数,用来限制全局请求的防抖。
< 今日小技巧:Axios封装,接口请求增加防抖功能 >
|
21天前
|
JSON JavaScript 前端开发
< 每日份知识快餐:axios是什么?如何在Vue中 封装 axios ? >
本文介绍了前端开发中常用的HTTP客户端库Axios,它基于Promise,支持浏览器和Node.js,特点是功能强大、支持Promise API和并发请求,并能拦截请求和响应。文章强调了理解Axios的内部原理和优化使用的重要性,不仅讲解了基本的安装、导入和使用方法,还阐述了为何选择Axios,包括其丰富的配置选项和良好的浏览器支持。此外,文章探讨了封装Axios的必要性,以减少重复代码和提高代码维护性,并给出了设置接口请求前缀、请求头、超时时间以及封装请求方法和拦截器的示例。通过封装,开发者可以更高效地管理和使用Axios,适应不同项目需求。
|
27天前
|
JSON 前端开发 JavaScript
Vue+Axios+SpringBoot后端同时接收文件和json作为请求参数
Vue+Axios+SpringBoot后端同时接收文件和json作为请求参数
38 0
|
27天前
|
JavaScript
vue中高精度小数问题(加减乘除方法封装)处理
vue中高精度小数问题(加减乘除方法封装)处理
34 0
|
1月前
|
前端开发 应用服务中间件 nginx
Vue+SpringBoot+Axios的跨域问题
Vue+SpringBoot+Axios的跨域问题
20 0
|
1月前
|
JavaScript
vue element upload组件配合axios实现用 “Content-Type“: “multipart/form-data“上传方式导入xls文件
vue element upload组件配合axios实现用 “Content-Type“: “multipart/form-data“上传方式导入xls文件