什么是ajax
ajax并不是一种新技术,而是一种技术方案。它是 Asynchronous JavaScript and XML 的缩写,指的是通过 JavaScript 的异步通信,从服务器获取 XML 文档从中提取数据,再更新当前网页的对应部分,而不用刷新整个网页。
简单来说,就是用JS向服务器发送一个请求,获取服务器返回的内容。
跟以前没有ajax时,浏览器发送请求的情况比起来(例如a标签),ajax不会导致页面刷新即可更新网页的某部分。
如何实现ajax
- XMLHttpRequest对象
- fetch(较新)
使用XMLHttpRequest对象实现ajax
1.创建 XMLHttpRequest 实例
var xhr = new XMLHttpRequest();
2.设置请求参数
xhr.open();
可接受五个参数:
- method:表示 HTTP 动词方法,比如GET、POST、PUT、DELETE、HEAD等。
- url: 表示请求发送目标 URL。
- async: 布尔值,表示请求是否为异步,默认为true。如果设为false,则send()方法只有等到收到服务器返回了结果,才会进行下一步操作。该参数可选。由于同步 AJAX 请求会造成浏览器失去响应,许多浏览器已经禁止在主线程使用,只允许 Worker 里面使用。所以,这个参数轻易不应该设为false。
- user:表示用于认证的用户名,默认为空字符串。该参数可选。
- password:表示用于认证的密码,默认为空字符串。该参数可选。
3.设置监听函数
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) { //这里的status不只是只有200
console.log(xhr.responseText) //xhr.responseText是服务器返回的内容
}
};
4.发送请求
xhr.send();
请求的内容
目前来说,服务器返回的最常见的是 JSON 格式的数据,XML 格式已经过时了。
当然,除了JSON格式的数据,其它格式的数据也能通过ajax请求。
网友评论