在web初期阶段,前端想要获取后端服务信息需要刷新整个页面,这种方式既耗时又让用户体验十分糟糕,那么怎么解决这个问题呢?
想要搭建起前端和后端的快速通道,这个时候就需要使用Ajax 。今天小编所要讲的内容就是在JS中如何通过Ajax技术进行网络请求 。
一、Ajax介绍Ajax是什么?
Ajax即Asynchronous JAVAscript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括:html 或 XHTML, css, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest 。
使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作 。
Ajax的优点:
- 可以无需刷新页面而与服务器端进行通信;
- 允许你根据用户事件来更新部分页面内容 。
- 没有浏览历史,不能回退;
- 存在跨域问题(同源);
- seo不友好 。
接下来我们来了解一下Ajax 原理是什么,以及发送Ajax请求的五个步骤,其实也就是使用 XMLHttpRequest 对象的五个步骤 。
一个完整的 HTTP 请求需要的是:
- 请求的网址、请求方法 get/post 。
- 提交请求的内容数据、请求主体等 。
- 接收响应回来的内容 。
文章插图
发送 Ajax 请求的五个步骤:
1)创建异步对象,即 XMLHttpRequest 对象 。
2)使用 open 方法设置请求参数 。open(method, url, async) 。参数解释:请求的方法、请求的 url、是否异步 。第三个参数如果不写,则默认为 true 。
3)发送请求:send() 。
4)注册事件:注册 onreadystatechange 事件,状态改变时就会调用 。如果要在数据完整请求回来的时候才调用,我们需要手动写一些判断的逻辑 。
5)服务端响应,获取返回的数据 。
二、XMLHttpRequest 对象详解在 JavaScript 中,XMLHttpRequest 是客户端的一个 API,它为浏览器与服务器通信提供了一个便捷通道 。现代浏览器都支持 XMLHttpRequest API,如 IE 7+、Firefox、Chrome、Safari 和 Opera 。
文章插图
发送请求
发送请求的方法:
open(method, url, async);参数解释:
- method:请求的类型;GET 或 POST
- url:文件在服务器上的位置
- async:true(异步)或 false(同步)
另外还有个方法:(仅用于 POST 请求)
send(string);POST 请求时注意:
如果想让像form表单提交数据那样使用POST请求,就需要使用 XMLHttpRequest 对象的 setRequestHeader()方法来添加 HTTP 头 。然后在 send() 方法中添加想要发送的数据:
xmlhttp.open('POST', 'ajax_test.php', true);onreadystatechange 事件
xmlhttp.setRequestHeader('Content-type', 'Application/x-www-form-urlencoded');
xmlhttp.send('name=smyhvae&age=27');
注册 onreadystatechange 事件后,每当 readyState 属性改变时,就会调用 onreadystatechange 函数 。
readyState:(存有 XMLHttpRequest 的状态 。从 0 到 4 发生变化)
- 0: 请求未初始化
- 1: 服务器连接已建立
- 2: 请求已接收
- 3: 请求处理中
- 4: 请求已完成,且响应已就绪
status:
- 200: “OK” 。
- 404: 未找到页面 。
服务器响应的内容
- responseText:获得字符串形式的响应数据 。
- responseXML:获得 XML 形式的响应数据 。
三、常用Ajax请求方式手写第一个 Ajax 请求
get 请求:
//【发送ajax请求需要五步】
推荐阅读
- 一篇文章教会你使用JavaScript 创建对象
- 2023年流行的五大JavaScript框架
- “南极墙”究竟是什么?有何特点,是怎么形成?
- a级车b级车是按照尺寸算吗?A级车、B级车、C级车、D级车是什么意思?
- 木那种春带彩翡翠的特色是什么?市场上有较高的价值吗?
- 贡眉白茶是什么茶?
- 最新工资价位表来了!你是什么段位?
- 生椰拿铁的“生椰”是什么?为什么这么火?
- 暗黑破坏神2 最强职业是什么, 最强职业推荐介绍
- 30岁血脂稠是什么原因造成的怎么治疗