下载依赖包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. 带你使用Visual Studio 2019创建一个MVC Web应用

    工欲善其事必先利其器,我们既然有Visual Studio2019这样的IDE为什么不用?学.Net Core而不用Visual Studio进行开发可谓是多么另类呀!既然你已经安装了VS2019的话 ...

  2. 01-EF Core笔记之创建模型

    使用EF Core的第一步是创建数据模型,模型建的好,下班走的早.EF Core本身已经设置了一系列约定来帮我们快速的创建模型,例如表名.主键字段等,毕竟约定大于配置嘛.如果你想改变默认值,很简单,E ...

  3. Ubuntu16.04+GTX2070+Driver418.43+CUDA10.1+cuDNN7.6

    最近需要用到一台服务器的GPU跑实验,其间 COLMAP 编译过程出错,提示 cuda 版本不支持,cmake虽然通过了,但其实没有找到支持的CUDA架构. cv@cv:~/mvs_project/c ...

  4. php yii 查看帮助时会调用具体脚本类的析构函数

    现象 执行 php yii 查看脚本有什么命令的时候,发现会调用我一个类中的析构函数的命令.并且不是一次调用,是3次,截图中有两次,还有一次输出完析构函数所在的类中的命令之后. 分析原因 在析构函数中 ...

  5. 松软科技Web课堂:重要->JavaScript 调试

    错误总会发生,每当您写一些新的计算机代码时. JavaScript 调试 在没有调试器的情况下写 JavaScript 是有难度的. 您的代码中也许包含了语法错误,或者逻辑错误,这些都难以诊断. 通常 ...

  6. windows + flutter +android+ vscode 安装配置运行流程(详细版本)

    flutter 是由谷歌发布的一个全新的响应式.跨平台.高性能的移动开发框架,可以快速在iOS和Android上构建高质量的原生用户界面. 框架特点 快速开发:Flutter的热重载可以快速地进行测试 ...

  7. 换了网线异常了,CRS无法正常启动,clssnmSendingThread: sending status msg to all nodes

    换了网线异常了,CRS无法正常启动,clssnmSendingThread: sending status msg to all nodes同事换网线前我将节点2正常关闭了,换完网线告诉我,发现节点2 ...

  8. 林克的小本本之——HCL网络知识随笔

    单臂路由 单臂路由是一种通过在路由器的一个接口上配置逻辑接口,来实现不同Vlan之间互通的方法. 实例: #配置SW1的VLAN [SW1]vlan 2 #配置端口vlan略 [SW1]int g1/ ...

  9. leetcode菜鸡斗智斗勇系列(2)--- 把一个ipv4地址转换成一串数字

    1.原题: https://leetcode.com/problems/defanging-an-ip-address/ 这道题本身很简单, Given a valid (IPv4) IP addre ...

  10. 微信 电脑版 HOOK(WeChat PC Hook)- 技能点

    CE 扫描内存数据OD 动态分析代码IDA 静态分析代码汇编 阅读OD和IDA的代码 编写inline hookC/C++ 编写dll 编写主程序逻辑MFC 编写主程序界面 源码: https://g ...