网站首页 > 技术文章 正文
使用原生的JavaScript程序执行AJAX的过程极其烦琐,为了解决XMLHttpRequest的AJAX请求封装的复杂性,以及便于后续增加请求响应等拦截器的常用功能,还可以考虑使用第三方类库Axios。Axios 是目前最流行的前端AJAX 框架。
Axios 是一个具有独立开发功能且目标明确的请求类库,它基于Promise,是一个既可用于浏览器又可以用于Node.js服务器端的HTTP请求模块。
本质上它是符合最新ES规范,使用Promise实现的、原生XHR的封装。在服务端,它使用原生Node.js 的HTTP模块实现;而在客户端,它则使用XMLHttpRequest对象实现。因为对于请求操作,Axios进行了常用功能的封装,所以开发人员若想实现网络请求功能,则只需要直接安装使用它,就可以拥有它带来的诸多新的特性内容,主要包括以下几点。
- 支持从浏览器创建XMLHttpRequest对象。
- 支持从Node.js创建HTTP请求。
- 支持Promise API。
- 拦截请求和响应。
- 转换请求和响应数据。
- 取消请求。
- 自动转换JSON数据。
通过一个案例简单演示Axios的使用。在页面创建一个按钮,单击按钮发送异步请求,触发后台Servlet代码,并实现获取请求参数,在控制台输出。采用Axios异步框架向后台发送请求的步骤如下。
- 导入Axios框架(axios.min.js文件)。
- 调用axios()函数,该函数用来发送异步请求,并传入请求路径、请求方式等参数,设置请求的具体信息。
- 服务器端通过输出流的方式输出数据(返回给JavaScript)。
- 接收服务器端的响应数据,语法格式如下。
axios({}).then(responce=>{回调函数})
- 如果服务器出现500错误,就执行catch()中的回调函数,语法格式如下。
// 链式编程
axios({}).then(responce=>{请求成功的回调函数}).catch(error=>{请求失败,出现500错误的回调函数})
HTML页面如下,发送异步请求到服务器端(Servlet)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcss.com/vue/2.5.17/vue.min.js"></script>
<script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script>
</head>
<body>
<h1>demo090801</h1>
<input type="button" value="点击" @click="fun01" />
</body>
<script>
new Vue({
el: '#demo090801',
data: {},
methods: {
fun01:function () {
alert(100)
axios({
method: 'get',
url: 'http://localhost:8080/api/demo/demo090801',
params: {
message: "hello AJAX"
}
}).then(function (response) {
var message = response.data;
alert(message);
}).catch(function (error) {
alert(error);
})
}
}
})
</script>
</html>
创建AJAXTestServlet,继承HttpServlet,获取请求参数并返回响应数据。
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class AjaxTestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getParameter("message");
resp.getWriter().write("hello world");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
运行代码,Axios的入门案例首页所示。单击按钮,查看后端控制台。同时再次查看前端页面,成功接收到后台返回的响应数据。
猜你喜欢
- 2025-09-18 最新学习java的好评网站(从入门到面试)(不止java)
你 发表评论:
欢迎- 最近发表
-
- Three.js vs Unity:工业可视化为何选择Web方案?
- 一款全新Redis UI可视化管理工具,支持WebUI和桌面——P3X Redis UI
- 时间线可视化实战:三款AI工具实测,手把手教你制作人生轨迹图
- 【推荐】一款可视化在线 Web 定时任务管理平台,支持秒级任务设置
- 重磅更新!FastDatasets 推出可视化 Web 界面
- 模具设计之UG钣金实例教程(3)_ug钣金基础教程
- 前端基于 RBAC 模型的权限管理实现
- 别再把JWT存在localStorage里了!2025年前端鉴权新思路
- 模具设计之曲面造型中不圆润的曲面如何处理技巧
- 9个专业级别的CSS技巧区分了解和精通的鸿沟
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)