什么是AJAX
AJAX( Asynchronous JavaScript and XML)是一种客户端Web开发技术,用于生成交互式Web应用程序。AJAX是一种开发应用程序的方法,它结合了下面的功能,使用JavaScript将它们组合在一起。
历史
90年代前期,所有的计算机网站,都是完整的HTML 页面。每个用户请求,都有一个新的页面从服务器进行加载。这种过程效率非常低(做了很多重复性内容);
1996 年,微软的 Outlook Web App team 发展出了一个XMLHttpRequest脚本对象;后来,XMLHTTP ActiveX 被 其它浏览器厂家所实现;
在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。
Google Suggest 使用 AJAX 创造出动态性极强的 web 界面:当您在谷歌的搜索框输入关键字时,JavaScript 会把这些字符发送到服务器,然后服务器会返回一个搜索建议的列表。
工作原理
创建 XMLHttpRequest 对象
var xhr;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else {
xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
向服务器发送请求请求
open(method,url,async)
规定请求的类型、URL 以及是否异步处理请求。
.method
:请求的类型;GET 或 POST
.url
:文件在服务器上的位置
.async
:true(异步)或 false(同步)
send
(string)将请求发送到服务器。
.string
:仅用于 POST 请求
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
服务器 响应
属性
responseText
:获得字符串形式的响应数据。
responseXML
:获得 XML 形式的响应数据。
xhr.onreadystatechange = function () {
// 判断当Ajax状态码为4时
if (xhr.readyState == 4) {
// 获取服务器端的响应数据
console.log(xhr.responseText);
}
Ajax 错误处理
引用:https://blog.youkuaiyun.com/weixin_43709908/article/details/101081762
1.网络畅通,服务器端能接收到请求,服务器端返回的结果不是预期结果。
可以判断服务器端返回的状态码,分别进行处理。xhr.status 获取http状态码
2.网络畅通,服务器端没有接收到请求,返回404状态码。
检查请求地址是否错误。
3.网络畅通,服务器端能接收到请求,服务器端返回500状态码。
服务器端错误,找后端程序员进行沟通。
4.网络中断,请求无法发送到服务器端。
会触发xhr对象下面的onerror事件,在onerror事件处理函数中对错误进行处理