下载依赖包axios

npm i axios -d
//在packge.json内配置proxy,配置请求基础路径
"proxy":"http://localhost:5000"

最基本的axios异步请求

/api/ajax.js

/*
能发送异步ajax请求的函数模块
封装 axios库
函数的返回值:是一个promise对象 (可以用.then()/ async await 进行异步处理)
*/
//引入axios库
import axios from 'axios';
//引入axios库的模块 export default function ajax(url, data={}, method='GET'){
if(method==='GET'){// 判断:发送 GET 请求
return axios.get(url,{// 配置对象
// params:{ID:12345}
params:data //指定请求参数
})
}else{//发POST请求
return axios.post(url,data)
}
}
//请求登陆接口
ajax('/login',{username:'tom',password:'123456'},'POST').then();
//添加用户
ajax('/manage/user/add',{username:'tom',password:'123456',phone:'13353545556'},'POST').then()

//任何一个操作都需要自己手动编写请求,所以过于繁琐复杂
//因此可配置api/index.js 来请求用户参数
//api/index

/*
包含n个接口请求函数的模块
每个函数返回promise
*/
import ajax from 'ajax'; //登陆
export const reqLogin = (username,password) => ajax('/login',{username,password},'POST')
export const reqAddUser = (user) => ajax('/manage/user/add',user,'POST')

封装ajax请求模块

/*
能发送ajax请求的函数模块
包装axios
函数的返回值是promise对象
axios.get()/post()返回的就是promise对象
返回自己创建的promise对象:
统一处理请求异常
异步返回结果数据,而不是包含结果数据的response
*/
import axios from 'axios';
import { message } from 'antd';
export default function ajax(url, data = {}, method='GET'){ return new Promise((resolve, reject) =>{
let promise
//执行异步请求
if(method == 'GET'){
promise = axios.get(url,{params:data}) //params 配置指定的是query参数 }else{
promise = axios.post(url,data)
}
promise.then(response=>{
// 如果成功了,嗲用resolve(response.data)
resolve(response.data)
}).catch(error => {// 对所有ajax请求出错做统一处理,外层就不用再处理错误了
//如果失败了,提示请求后台出错
message.error('请求错误:'+error.message)
})
})
}

前后台交互ajax请求模块的更多相关文章

  1. jquery ajax返回json数据进行前后台交互实例

    jquery ajax返回json数据进行前后台交互实例 利用jquery中的ajax提交数据然后由网站后台来根据我们提交的数据返回json格式的数据,下面我来演示一个实例. 先我们看演示代码 代码如 ...

  2. ajax实现异步前后台交互,模拟百度搜索框智能提示

    1.什么是异步?在传统的网站项目中,填写一堆数据,最后点击提交,在点击提交的这一刻才实现数据提交,前后台交互.在你点击提交之前数据是没有提交到后台的.这样就会造成很大的不便.比如,我填了一大堆数据,结 ...

  3. ajax的底层前后台交互

    为什么用ajax或者它的优点: 异步加载数据,无需切换页面 更加的用户体验,局部刷新,及时验证,操作步骤简化: 节省流量 js控制数据的加载,更加灵活多用. 底层就是XMLHttpRequest对象: ...

  4. extjs ajax请求与struts2进行交互

    sencha extjs 5 增加一个struts2的配置,这样可以在设置好前台布局之后,与后台交互获取数据显示.现在有一个问题是struts2对于url的跳转action支 持比较良好,但是对于像E ...

  5. <day001>存储到Mysql、mongoDB数据库+简单的Ajax请求+os模块+进程池+MD5

    任务1:记住如何存储到Mysql.mongoDB数据库 ''' 存储到Mysql ''' import pymysql.cursors class QuotePipeline(object): def ...

  6. 前后端数据交互(二)——原生 ajax 请求详解

    一.ajax介绍 ajax 是前后端交互的重要手段或桥梁.它不是一个技术,是一组技术的组合. ajax :a:异步:j:js:a:和:x:服务端的数据. ajax的组成: 异步的 js 事件 其他 j ...

  7. AJAX请求.net controller数据交互过程

    AJAX发出请求 $.ajax({ url: "/Common/CancelTaskDeal", //CommonController下的CancelTaskDeal方法 type ...

  8. ajax请求后台交互json示例

    ajax请求,首先需要服务器(首先你需要node) npm i -g http-server 其次,进入当前目录(默认服务器端口8080) http-server 点击进入:localhost:808 ...

  9. Devexpress 使用经验 —— ASPxGridView前后台交互写法推荐

    这里的格式是仁者见仁智者见智,这篇随笔只是我在工作过程中总结出的阅读性高,对我来说效率较高的写法. ASPX: <dx:ASPxGridView ID="ASPxGridViewLin ...

随机推荐

  1. 【关注图像采集视频传输】之 Cy3014 usb3.0 FIFO接口

    CYUSB3014延续了CY7C68013A最吸引人的地方,那就是实现高速数据传输的Slave FIFO接口,应用这种模式,据说数据传输率可以达到320MB/s. 同USB2.0的芯片CY7C6801 ...

  2. python笔记03

    day03 一.今日内容: 1.整型 2.字符串 3.布尔类型 二.内容回顾和补充 脑图--xmind软件,processon 1.运算符补充(in.not in) value = "我是中 ...

  3. 一次框架性能的比较,引起了我对搭建web框架的兴趣

    背景 一次无意的访问,点击到了一个专门做PHP性能测试的网站,看这里PHP Benchmarks. 在里面发现了框架性能测试的结果,发现Laravel的框架性能尽然是最低的.瞬间受到了一万点的暴击,谁 ...

  4. 【Eureka】服务发现调用

    [Eureka]服务发现调用 转载:https://www.cnblogs.com/yangchongxing/p/10779832.html 1.使用 Netfix Feign 客户端调用服务 首先 ...

  5. 开启html元素的编辑模式contenteditable="true"

    开启html元素的编辑模式contenteditable="true"

  6. srvany.exe读取配置文件问题

    使用instsrv.exe与srvany.exe将自己的程序弄成免登录系统就能自动启动了,然而程序运行需要读取相应的配置文件,所以程序是跑起来了,但不能正常使用,找了很久终于找到了答案.在之前的基础上 ...

  7. 《Java知识应用》Java Excel读取(xls、xlsx)和写入

    第一步: 链接: https://pan.baidu.com/s/1emJpl7cpvKZyRMzWccAhJA 提取码: p3a7 复制这段内容后打开百度网盘手机App,操作更方便哦 下载jar包: ...

  8. 聊一聊看似简单的Promise.prototype.then()方法

    Promise.prototype.then() Proise实例的then方法是定义在原型对象Promise.prototype上的,它的作用是为Promise实例添加状态改变时的回调函数. 该方法 ...

  9. django 用户与权限管理

    django中使用content_type表进行存储app与model的关系.在permission表中设立了name(权限的名字,中英文均可)content_type_id(与content_typ ...

  10. 6.1 自定义abp拦截器示例

    一个简单.基于AbpInterceptor的拦截器示例: using Microsoft.Extensions.DependencyInjection; using System; using Sys ...