[Javaweb]Axios异步框架

网友投稿 269 2022-09-16

[Javaweb]Axios异步框架

文章目录

​​概述​​​​Axios基本使用​​​​Axios请求方式别名​​

概述

Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。

特性:

从浏览器中创建 XMLHttpRequests从 node.js 创建 请求支持 Promise API拦截请求和响应转换请求数据和响应数据取消请求自动转换 JSON 数据客户端支持防御 XSRF

这一篇文章我们主要使用Axios对原生Ajax的封装特性

Axios基本使用

Axios的使用也很简单:

第一步:我们先把Axios下载下来

npm install axios

当然我们不能直接在web项目中引入一个本地资源,我们可以把里面的核心文件拖入到项目中

第二步:使用axios 发送请求,并获取响应结果

发送 get 请求

axios({ method:"get", url:"(resp){ alert(resp.data);})

发送 post 请求

axios({ method:"post", url:" data:"username=zhangsan"}).then(function (resp){ alert(resp.data);});

​​axios()​​ 是用来发送异步请求的,小括号中使用 js 对象传递请求相关的参数:

​​method​​​ 属性:用来设置请求方式的。取值为​​get​​​ 或者​​post​​。​​url​​​ 属性:用来书写请求的资源路径。如果是​​get​​​ 请求,需要将请求参数拼接到路径的后面,格式为:​​url?参数名=参数值&参数名2=参数值2​​。​​data​​​ 属性:作为请求体被发送的数据。也就是说如果是​​post​​​ 请求的话,数据需要作为​​data​​ 属性的值。

​​then()​​​ 需要传递一个匿名函数。我们将 ​​then()​​ 中传递的匿名函数称为 回调函数,意思是该匿名函数在发送请求时不会被调用,而是在成功响应后调用的函数。而该回调函数中的 ​​resp​​​ 参数是对响应的数据进行封装的对象,通过 ​​resp.data​​ 可以获取到响应的数据。

我们简单的使用Axios发送一个请求,将请求参数打印的同时对服务器返回的数据进行呈现: 服务器端:

@WebServlet("/Axios1")public class ServletAxiosDemo1 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("你发送了一个post请求"); String username = request.getParameter("username"); System.out.println(username); response.getWriter().write("hello.Axios~"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("你发送了一个get请求"); String username = request.getParameter("username"); System.out.println(username); response.getWriter().write("hello.Axios~"); }}

前端:

Title

结果:

Axios请求方式别名

为了方便起见, Axios 已经为所有支持的请求方法提供了别名。如下:

​​get​​​ 请求 : ​​axios.get(url[,config])​​​​delete​​​ 请求 : ​​axios.delete(url[,config])​​​​head​​​ 请求 : ​​axios.head(url[,config])​​​​options​​​ 请求 : ​​axios.option(url[,config])​​​​post​​​ 请求:​​axios.post(url[,data[,config])​​​​put​​​ 请求:​​axios.put(url[,data[,config])​​​​patch​​​ 请求:​​axios.patch(url[,data[,config])​​

注意 在使用别名方法时, url、method、data 这些属性都不必在配置中指定。

我们拿get、post举例:

例如我们上面代码中的:

axios({ method:"get", url:" }).then((res) => { alert(res.data) })

可以变为:

axios.get("=> { alert(res.data) })

axios({ method:"post", url:" data:"username=zs" }).then((res) => { alert(res.data) })

可以变为:

.post("=> { alert(res.data) })

两者的优缺点: 使用别名的方式阅读性较差,但代码简洁

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Vuex③(getters,四种map映射方法)
下一篇:抖音要求删除站外引流信息:包括微信、QQ等!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~