AJAX 简介

Ajax 的核心是 XMLHttpRequest 对象。

所有现代浏览器都支持 XMLHttpRequest 对象。

XMLHttpRequest 对象用于同幕后服务器交换数据。这意味着可以更新网页的部分,而不需要重新加载整个页面。

AJAX 语法

创建 XMLHttpRequest 的语法

1
2
3
xhr = new XMLHttpRequest();
/*老版本的 Internet Explorer(IE5 和 IE6)使用 ActiveX 对象:*/
xhr = new ActiveXObject("Microsoft.XMLHTTP");

步骤

  1. 建立ajax对象
  2. 打开对象建立http请求
  3. 发送请求
  4. 监听请求

应该在发送对象前监听请求,否则可能数据已经返回但还没开始监听


当xhr对象的 deadyState发生了变化时会触发该对象的onreadystatechange事件


readyState:

    1. xhr对象已经创建,但是还没有进行初始化
    1. 对象已经调用了open()
    1. 对象已经发出了ajax请求
    1. 对象返回了部分数据
    1. 数据已经全部返回

数据全部返回时放在了xhr.responseText的属性中(string)
在数据全部返回后需要判断http的响应码,在xhr.status中,当响应码>=200并且<=300时为响应成功


AJAX 方法

open()

包含 5 个参数,说明如下:

method:HTTP 请求方法,必须参数,值包括 POST、GET 和 HEAD,大小写不敏感。

url:请求的 URL 字符串,必须参数,大部分浏览器仅支持同源请求。

async:指定请求是否为异步方式,默认为 true。如果为 false,当状态改变时会立即调用 onreadystatechange 属性指定的回调函数。

username:可选参数,如果服务器需要验证,该参数指定用户名,如果未指定,当服务器需要验证时,会弹出验证窗口。

password:可选参数,验证信息中的密码部分,如果用户名为空,则该值将被忽略。


注意事项

前端表单 上传编码格式为application/x-www-form-urlencoded(Request Headers中),参数的格式为key=value&key=value